
Markus Schöpflin wrote:
IOW, you're 100% sure that both compilers somehow get this wrong when the test fails.
Can you try this modification (also in CVS HEAD) that would tell us more about what's going on: --- bind_visit_test.cpp 28 Feb 2006 21:36:42 -0000 1.1 +++ bind_visit_test.cpp 21 Apr 2006 11:51:50 -0000 @@ -22,6 +22,7 @@ #endif #include <iostream> +#include <typeinfo> #if defined(BOOST_MSVC) && (BOOST_MSVC < 1300) # pragma warning(pop) @@ -37,12 +38,14 @@ { } - template<typename T> void operator()( T const & /*t*/ ) + template<typename T> void operator()( T const & t ) { + std::cout << "visitor::operator()( T ): " << typeid( t ).name() << std::endl; } void operator()( int const & t ) { + std::cout << "visitor::operator()( int ): " << t << std::endl; hash = hash * 10 + t; } };