https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69767

            Bug ID: 69767
           Summary: Clash with macros from sys/sysmacros.h
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: mpolacek at gcc dot gnu.org
  Target Milestone: ---

The following should probably compile even with -std=c++11 or -std=c++14:

#include <string>

struct S { 
  int major;
  int minor;
  S (int major = 1, int minor = 3); 
};

S::S(int major, int minor) : major (major), minor(minor)
{
}

glibc's sys/sysmacros.h has these defines:

/* Access the functions with their traditional names.  */
#define major(dev) gnu_dev_major (dev)
#define minor(dev) gnu_dev_minor (dev)
#define makedev(maj, min) gnu_dev_makedev (maj, min)

Reply via email to