Opened 11 years ago
Closed 11 years ago
#6287 closed Bugs (fixed)
hardcoded fwd declarations don't work for gcc configured withor --enable-symvers=gnu-versioned-namespace
Reported by: | Owned by: | Ion Gaztañaga | |
---|---|---|---|
Milestone: | To Be Determined | Component: | interprocess |
Version: | Boost 1.48.0 | Severity: | Showstopper |
Keywords: | Cc: |
Description
hi,
the --enable-symvers=gnu-versioned-namespace gcc's configure option introduces a new versioned std::7:: namespace and all these hardcoded std:: forward declarations won't work.
#include <boost/interprocess/interprocess_fwd.hpp> #include <utility> int main() { std::pair< int, int > p; }
$ /local/devel/toolchain46/x86_64-gnu-linux.host64/bin/x86_64-gnu-linux-g++ t.cpp -c -isystem /usr/include
t.cpp: In function 'int main()': t.cpp:5:2: error: reference to 'pair' is ambiguous /usr/include/boost/interprocess/interprocess_fwd.hpp:47:8: error: candidates are: template<class T1, class T2> struct std::pair /local/devel/toolchain46/x86_64-gnu-linux.host64/lib64/gcc/x86_64-gnu- linux/4.6.3/../../../../x86_64-gnu- linux/include/c++/4.6.3/bits/stl_pair.h:87:12: error: template<class _T1, class _T2> struct std::7::pair t.cpp:5:13: error: expected primary-expression before 'int' t.cpp:5:13: error: expected ';' before 'int'
Fixed in trunk at revision: 76114