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