
The libstdc++ debug mode doesn't work with forward declarations of std templates (since when using the debug mode std::vector is really __gnu_debug_def::vector, visible in std due to GCC's "strong using" extension) Lambda's boost/lambda/detail/operator_return_type_traits.hpp seems to account for this, but only checks for GCC 3.4 not 4.0, causing the error shown here for GCC 4.x in debug mode (*): http://www.redi.uklinux.net/src/boost/status/cs-Linux-links.html#lambda-cons... The workaround on line 876 should be changed to account for GCC 4.x or alternatively, test for the debug mode explicitly. The attached patch does the test explicitly and disables all forward decls of std templates when _GLIBCXX_DEBUG is defined. I don't know whether it's preferred to simply disable the forward decls for non-debug mode as well. jon (*) regression test results for GCC 4.0 & 4.1 on x86_64 GNU/Linux here: http://www.redi.uklinux.net/src/boost/status/cs-Linux.html All toolsets use GCC's concept-checks, the gcc-debug-mode toolset also uses the libstdc++ debug mode. -- "Always Read the Label" - anon.
participants (1)
-
Jonathan Wakely