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

            Bug ID: 81347
           Summary: g++ confused by namespaces and friend classes
           Product: gcc
           Version: 5.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: thomasanderson at google dot com
  Target Milestone: ---

Created attachment 41695
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41695&action=edit
Preprocessed test.cpp

Compile test.cpp below using libc++ headers:

-----test.cpp-----
#include <set>

class C {
  std::set<int> s;
};

#include <map>

using std::map;
------------------

$ g++ -c test.cpp -nostdinc++ -isystem/path/to/libc++/trunk/include

g++ fails to compile and gives:
main.cpp:9:12: error: ‘map’ is already declared in this scope
 using std::map;

I've attached a preprocessed output for convenience.

$ g++ -c test_preproc.cpp 2>/dev/null && echo pass || echo fail
fail
$ clang++ -c test_preproc.cpp 2>/dev/null && echo pass || echo fail
pass

Reply via email to