#define BOOST_TEST_MODULE BoostCheckEqualCollectionsBugTestModule #include #include #include struct MyClass : public ::boost::equality_comparable {}; bool operator==(MyClass const& lhs, MyClass const& rhs) { return true; } typedef ::std::vector MyClassVec; //BOOST_TEST_DONT_PRINT_LOG_VALUE(MyClass); BOOST_AUTO_TEST_CASE(compiles) { MyClass actual, expected; BOOST_CHECK_EQUAL(actual, expected); } BOOST_AUTO_TEST_CASE(should_compile) { MyClassVec actual, expected; // uncommenting next line provokes a compile-time error //BOOST_CHECK_EQUAL_COLLECTIONS(actual.cbegin(), actual.cend(), expected.cbegin(), expected.cend()); }