diff --git a/integer_traits_test.cpp b/integer_traits_test.cpp index 15b454a..e3de239 100644 --- a/integer_traits_test.cpp +++ b/integer_traits_test.cpp @@ -54,7 +54,15 @@ void runtest(const char * type, T) << ", max is " << make_char_numeric_for_streaming((traits::max)()) << std::endl; BOOST_CHECK(traits::is_specialized); +#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1200) + // MSVC++ 6.0 issues a LNK1179 error (duplicate comdat) when the compiler + // generates different symbol names with a very long common prefix: + // the dummy "&& true" disambiguates between the symbols generated by this + // BOOST_CHECK instantiation and the preceding one. + BOOST_CHECK(traits::is_integer && true); +#else BOOST_CHECK(traits::is_integer); +#endif BOOST_CHECK(traits::is_integral == true); BOOST_CHECK(traits::const_min == (traits::min)()); BOOST_CHECK(traits::const_max == (traits::max)());