In file included from boost_test_double_trouble_under_clang.cpp:3: In file included from /tmp/test/include/boost/test/included/unit_test.hpp:34: In file included from /tmp/test/include/boost/test/unit_test.hpp:18: In file included from /tmp/test/include/boost/test/test_tools.hpp:38: In file included from /tmp/test/include/boost/test/tools/old/impl.hpp:21: /tmp/test/include/boost/test/tools/floating_point_comparison.hpp:259:25: error: 'mutable' cannot be applied to references mutable FPT m_tested_rel_diff; ^ /tmp/test/include/boost/test/tools/fpc_op.hpp:71:34: note: in instantiation of template class 'boost::math::fpc::close_at_tolerance' requested here fpc::close_at_tolerance P( fpc_tolerance(), fpc::FPC_STRONG ); ^ /tmp/test/include/boost/test/tools/fpc_op.hpp:211:30: note: in instantiation of function template specialization 'boost::test_tools::assertion::op::compare_fpv >' requested here BOOST_TEST_FOR_EACH_COMP_OP( DEFINE_FPV_COMPARISON ) ^ /tmp/test/include/boost/test/tools/assertion.hpp:71:5: note: expanded from macro 'BOOST_TEST_FOR_EACH_COMP_OP' action( ==, EQ, != ) \ ^ /tmp/test/include/boost/test/tools/fpc_op.hpp:192:16: note: expanded from macro 'DEFINE_FPV_COMPARISON' return compare_fpv(lhs, rhs, (OP*)0); \ ^ /tmp/test/include/boost/test/tools/assertion.hpp:348:20: note: in instantiation of member function 'boost::test_tools::assertion::op::EQ::eval' requested here return OP::eval( m_lhs.value(), m_rhs ); ^ /tmp/test/include/boost/test/tools/assertion.hpp:357:42: note: in instantiation of member function 'boost::test_tools::assertion::binary_expr, double, boost::test_tools::assertion::op::EQ >::value' requested here assertion_result const expr_res( value() ); ^ boost_test_double_trouble_under_clang.cpp:7:2: note: in instantiation of member function 'boost::test_tools::assertion::binary_expr, double, boost::test_tools::assertion::op::EQ >::evaluate' requested here BOOST_TEST( num == 0.0 ); ^ /tmp/test/include/boost/test/tools/interface.hpp:166:8: note: expanded from macro 'BOOST_TEST' 2, BOOST_TEST_TOOL_UNIV, BOOST_TEST_TOOL_UNIV_EX, CHECK, __VA_ARGS__ ) \ ^ /tmp/test/include/boost/test/detail/pp_variadic.hpp:38:13: note: expanded from macro 'BOOST_TEST_INVOKE_IF_N_ARGS' F1, \ ^ /opt/include/boost/preprocessor/control/iif.hpp:18:57: note: expanded from macro 'BOOST_PP_IIF' # define BOOST_PP_IIF(bit, t, f) BOOST_PP_IIF_I(bit, t, f) ^ note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all) /tmp/test/include/boost/test/detail/pp_variadic.hpp:27:51: note: expanded from macro 'BOOST_TEST_INVOKE_VARIADIC' # define BOOST_TEST_INVOKE_VARIADIC( tool, ... ) tool (__VA_ARGS__) ^ /tmp/test/include/boost/test/tools/interface.hpp:144:5: note: expanded from macro 'BOOST_TEST_TOOL_UNIV' BOOST_TEST_TOOL_ET_IMPL( P, level ) \ ^ /tmp/test/include/boost/test/tools/interface.hpp:81:9: note: expanded from macro 'BOOST_TEST_TOOL_ET_IMPL' E.evaluate(), \ ^ 1 error generated.