Test output: teeks99-dkr-mg6-g11 - units - test_cmath / gcc-6~gnu11
Rev 2b7c83edd2af574bf4a892389c61cee817fcb8c5 / Thu, 14 Nov 2024 21:17:50 +0000
Compile [2024-11-14 22:37:03 UTC]: fail


    "g++-6"   -fvisibility-inlines-hidden -std=gnu++11 -fPIC -m64 -pthread -O0 -fno-inline -Wall -fvisibility=hidden  -DBOOST_ALL_NO_LIB=1 -DBOOST_COBALT_USE_STD_PMR=1   -I".."  -c -o "/var/boost/run/results/boost/bin.v2/libs/units/test/test_cmath.test/gcc-6~gnu11/debug/x86_64/debug-symbols-off/threading-multi/visibility-hidden/test_cmath.o" "../libs/units/test/test_cmath.cpp"

In file included from ../boost/math/special_functions/fpclassify.hpp:15:0,
                 from ../boost/units/cmath.hpp:17,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/tools/config.hpp:28:6: warning: #warning "Boost.Math requires C++14" [-Wcpp]
 #    warning "Boost.Math requires C++14"
      ^~~~~~~
In file included from ../boost/math/tools/promotion.hpp:28:0,
                 from ../boost/math/special_functions/math_fwd.hpp:28,
                 from ../boost/math/special_functions/fpclassify.hpp:20,
                 from ../boost/units/cmath.hpp:17,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/tools/type_traits.hpp:208:12: error: 'std::is_final' has not been declared
 using std::is_final;
            ^~~~~~~~
../boost/math/tools/type_traits.hpp:259:12: error: 'std::remove_cv_t' has not been declared
 using std::remove_cv_t;
            ^~~~~~~~~~~
../boost/math/tools/type_traits.hpp:261:12: error: 'std::remove_const_t' has not been declared
 using std::remove_const_t;
            ^~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:263:12: error: 'std::remove_volatile_t' has not been declared
 using std::remove_volatile_t;
            ^~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:265:12: error: 'std::add_cv_t' has not been declared
 using std::add_cv_t;
            ^~~~~~~~
../boost/math/tools/type_traits.hpp:267:12: error: 'std::add_const_t' has not been declared
 using std::add_const_t;
            ^~~~~~~~~~~
../boost/math/tools/type_traits.hpp:269:12: error: 'std::add_volatile_t' has not been declared
 using std::add_volatile_t;
            ^~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:273:12: error: 'std::remove_reference_t' has not been declared
 using std::remove_reference_t;
            ^~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:275:12: error: 'std::add_lvalue_reference_t' has not been declared
 using std::add_lvalue_reference_t;
            ^~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:277:12: error: 'std::add_rvalue_reference_t' has not been declared
 using std::add_rvalue_reference_t;
            ^~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:281:12: error: 'std::remove_pointer_t' has not been declared
 using std::remove_pointer_t;
            ^~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:283:12: error: 'std::add_pointer_t' has not been declared
 using std::add_pointer_t;
            ^~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:287:12: error: 'std::make_signed_t' has not been declared
 using std::make_signed_t;
            ^~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:289:12: error: 'std::make_unsigned_t' has not been declared
 using std::make_unsigned_t;
            ^~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:293:12: error: 'std::remove_extent_t' has not been declared
 using std::remove_extent_t;
            ^~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:295:12: error: 'std::remove_all_extents_t' has not been declared
 using std::remove_all_extents_t;
            ^~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:299:12: error: 'std::decay_t' has not been declared
 using std::decay_t;
            ^~~~~~~
../boost/math/tools/type_traits.hpp:301:12: error: 'std::enable_if_t' has not been declared
 using std::enable_if_t;
            ^~~~~~~~~~~
../boost/math/tools/type_traits.hpp:303:12: error: 'std::conditional_t' has not been declared
 using std::conditional_t;
            ^~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:305:12: error: 'std::common_type_t' has not been declared
 using std::common_type_t;
            ^~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:307:12: error: 'std::underlying_type_t' has not been declared
 using std::underlying_type_t;
            ^~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:315:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_void_v = boost::math::is_void<T>::value;
                                  ^~~~~~~~~
../boost/math/tools/type_traits.hpp:318:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_null_pointer_v = boost::math::is_null_pointer<T>::value;
                                  ^~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:321:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_integral_v = boost::math::is_integral<T>::value;
                                  ^~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:324:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_floating_point_v = boost::math::is_floating_point<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:327:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_array_v = boost::math::is_array<T>::value;
                                  ^~~~~~~~~~
../boost/math/tools/type_traits.hpp:330:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_enum_v = boost::math::is_enum<T>::value;
                                  ^~~~~~~~~
../boost/math/tools/type_traits.hpp:333:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_union_v = boost::math::is_union<T>::value;
                                  ^~~~~~~~~~
../boost/math/tools/type_traits.hpp:336:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_class_v = boost::math::is_class<T>::value;
                                  ^~~~~~~~~~
../boost/math/tools/type_traits.hpp:339:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_function_v = boost::math::is_function<T>::value;
                                  ^~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:342:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_pointer_v = boost::math::is_pointer<T>::value;
                                  ^~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:345:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_lvalue_reference_v = boost::math::is_lvalue_reference<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:348:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_rvalue_reference_v = boost::math::is_rvalue_reference<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:351:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_member_object_pointer_v = boost::math::is_member_object_pointer<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:354:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_member_function_pointer_v = boost::math::is_member_function_pointer<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:357:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_fundamental_v = boost::math::is_fundamental<T>::value;
                                  ^~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:360:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_arithmetic_v = boost::math::is_arithmetic<T>::value;
                                  ^~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:363:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_scalar_v = boost::math::is_scalar<T>::value;
                                  ^~~~~~~~~~~
../boost/math/tools/type_traits.hpp:366:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_object_v = boost::math::is_object<T>::value;
                                  ^~~~~~~~~~~
../boost/math/tools/type_traits.hpp:369:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_compound_v = boost::math::is_compound<T>::value;
                                  ^~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:372:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_reference_v = boost::math::is_reference<T>::value;
                                  ^~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:375:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_member_pointer_v = boost::math::is_member_pointer<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:378:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_const_v = boost::math::is_const<T>::value;
                                  ^~~~~~~~~~
../boost/math/tools/type_traits.hpp:381:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_volatile_v = boost::math::is_volatile<T>::value;
                                  ^~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:384:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_trivial_v = boost::math::is_trivial<T>::value;
                                  ^~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:387:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_trivially_copyable_v = boost::math::is_trivially_copyable<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:390:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_standard_layout_v = boost::math::is_standard_layout<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:393:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_empty_v = boost::math::is_empty<T>::value;
                                  ^~~~~~~~~~
../boost/math/tools/type_traits.hpp:396:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_polymorphic_v = boost::math::is_polymorphic<T>::value;
                                  ^~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:399:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_abstract_v = boost::math::is_abstract<T>::value;
                                  ^~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:402:47: error: 'is_final' is not a member of 'boost::math'
 BOOST_MATH_INLINE_CONSTEXPR bool is_final_v = boost::math::is_final<T>::value;
                                               ^~~~~
../boost/math/tools/type_traits.hpp:402:70: error: expected primary-expression before '>' token
 BOOST_MATH_INLINE_CONSTEXPR bool is_final_v = boost::math::is_final<T>::value;
                                                                      ^
../boost/math/tools/type_traits.hpp:402:71: error: '::value' has not been declared
 BOOST_MATH_INLINE_CONSTEXPR bool is_final_v = boost::math::is_final<T>::value;
                                                                       ^~
../boost/math/tools/type_traits.hpp:402:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_final_v = boost::math::is_final<T>::value;
                                  ^~~~~~~~~~
../boost/math/tools/type_traits.hpp:405:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_signed_v = boost::math::is_signed<T>::value;
                                  ^~~~~~~~~~~
../boost/math/tools/type_traits.hpp:408:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_unsigned_v = boost::math::is_unsigned<T>::value;
                                  ^~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:411:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_constructible_v = boost::math::is_constructible<T, Args...>::value;
                                  ^~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:414:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_trivially_constructible_v = boost::math::is_trivially_constructible<T, Args...>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:417:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_nothrow_constructible_v = boost::math::is_nothrow_constructible<T, Args...>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:420:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_default_constructible_v = boost::math::is_default_constructible<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:423:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_trivially_default_constructible_v = boost::math::is_trivially_default_constructible<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../boost/math/tools/promotion.hpp:28:0,
                 from ../boost/math/special_functions/math_fwd.hpp:28,
                 from ../boost/math/special_functions/fpclassify.hpp:20,
                 from ../boost/units/cmath.hpp:17,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/tools/type_traits.hpp:426:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_nothrow_default_constructible_v = boost::math::is_nothrow_default_constructible<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:429:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_copy_constructible_v = boost::math::is_copy_constructible<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:432:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_trivially_copy_constructible_v = boost::math::is_trivially_copy_constructible<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:435:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_nothrow_copy_constructible_v = boost::math::is_nothrow_copy_constructible<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:438:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_move_constructible_v = boost::math::is_move_constructible<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:441:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_trivially_move_constructible_v = boost::math::is_trivially_move_constructible<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:444:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_nothrow_move_constructible_v = boost::math::is_nothrow_move_constructible<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:447:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_assignable_v = boost::math::is_assignable<T, U>::value;
                                  ^~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:450:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_trivially_assignable_v = boost::math::is_trivially_assignable<T, U>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:453:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_nothrow_assignable_v = boost::math::is_nothrow_assignable<T, U>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:456:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_copy_assignable_v = boost::math::is_copy_assignable<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:459:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_trivially_copy_assignable_v = boost::math::is_trivially_copy_assignable<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:462:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_nothrow_copy_assignable_v = boost::math::is_nothrow_copy_assignable<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:465:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_move_assignable_v = boost::math::is_move_assignable<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:468:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_trivially_move_assignable_v = boost::math::is_trivially_move_assignable<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:471:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_nothrow_move_assignable_v = boost::math::is_nothrow_move_assignable<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:474:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_destructible_v = boost::math::is_destructible<T>::value;
                                  ^~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:477:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_trivially_destructible_v = boost::math::is_trivially_destructible<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:480:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_nothrow_destructible_v = boost::math::is_nothrow_destructible<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:483:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool has_virtual_destructor_v = boost::math::has_virtual_destructor<T>::value;
                                  ^~~~~~~~~~~~~~~~~~~~~~~~
../boost/math/tools/type_traits.hpp:486:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_same_v = boost::math::is_same<T, U>::value;
                                  ^~~~~~~~~
../boost/math/tools/type_traits.hpp:489:34: warning: variable templates only available with -std=c++14 or -std=gnu++14
 BOOST_MATH_INLINE_CONSTEXPR bool is_base_of_v = boost::math::is_base_of<T, U>::value;
                                  ^~~~~~~~~~~~
In file included from ../boost/math/special_functions/math_fwd.hpp:28:0,
                 from ../boost/math/special_functions/fpclassify.hpp:20,
                 from ../boost/units/cmath.hpp:17,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/tools/promotion.hpp:90:36: error: 'common_type_t' in namespace 'boost::math' does not name a template type
          using type = boost::math::common_type_t<T1, T2, float>;
                                    ^~~~~~~~~~~~~
In file included from ../boost/math/special_functions/next.hpp:22:0,
                 from ../boost/units/cmath.hpp:19,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/special_functions/trunc.hpp:324:44: error: 'enable_if_t' in namespace 'boost::math' does not name a template type
 BOOST_MATH_GPU_ENABLED inline boost::math::enable_if_t<boost::math::is_constructible_v<int, T>, int>
                                            ^~~~~~~~~~~
../boost/math/special_functions/trunc.hpp:331:44: error: 'enable_if_t' in namespace 'boost::math' does not name a template type
 BOOST_MATH_GPU_ENABLED inline boost::math::enable_if_t<!boost::math::is_constructible_v<int, T>, int>
                                            ^~~~~~~~~~~
../boost/math/special_functions/trunc.hpp:339:44: error: 'enable_if_t' in namespace 'boost::math' does not name a template type
 BOOST_MATH_GPU_ENABLED inline boost::math::enable_if_t<boost::math::is_constructible_v<long, T>, long>
                                            ^~~~~~~~~~~
../boost/math/special_functions/trunc.hpp:346:44: error: 'enable_if_t' in namespace 'boost::math' does not name a template type
 BOOST_MATH_GPU_ENABLED inline boost::math::enable_if_t<!boost::math::is_constructible_v<long, T>, long>
                                            ^~~~~~~~~~~
../boost/math/special_functions/trunc.hpp:354:44: error: 'enable_if_t' in namespace 'boost::math' does not name a template type
 BOOST_MATH_GPU_ENABLED inline boost::math::enable_if_t<boost::math::is_constructible_v<long long, T>, long long>
                                            ^~~~~~~~~~~
../boost/math/special_functions/trunc.hpp:361:53: error: 'enable_if_t' in namespace 'boost::math' does not name a template type
 BOOST_MATH_GPU_ENABLED inline typename boost::math::enable_if_t<!boost::math::is_constructible_v<long long, T>, long long>
                                                     ^~~~~~~~~~~
../boost/math/special_functions/trunc.hpp:361:64: error: expected unqualified-id before '<' token
 BOOST_MATH_GPU_ENABLED inline typename boost::math::enable_if_t<!boost::math::is_constructible_v<long long, T>, long long>
                                                                ^
../boost/math/special_functions/trunc.hpp:369:76: error: 'enable_if_t' in namespace 'boost::math' does not name a template type
 BOOST_MATH_GPU_ENABLED [[deprecated("Use llconvert")]] inline boost::math::enable_if_t<boost::math::is_constructible_v<long long, T>, long long>
                                                                            ^~~~~~~~~~~
../boost/math/special_functions/trunc.hpp:376:85: error: 'enable_if_t' in namespace 'boost::math' does not name a template type
 BOOST_MATH_GPU_ENABLED [[deprecated("Use llconvert")]] inline typename boost::math::enable_if_t<!boost::math::is_constructible_v<long long, T>, long long>
                                                                                     ^~~~~~~~~~~
../boost/math/special_functions/trunc.hpp:376:96: error: expected unqualified-id before '<' token
 BOOST_MATH_GPU_ENABLED [[deprecated("Use llconvert")]] inline typename boost::math::enable_if_t<!boost::math::is_constructible_v<long long, T>, long long>
                                                                                                ^
In file included from ../boost/math/special_functions/math_fwd.hpp:28:0,
                 from ../boost/math/special_functions/fpclassify.hpp:20,
                 from ../boost/units/cmath.hpp:17,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/tools/promotion.hpp: In instantiation of 'struct boost::math::tools::promote_args_permissive<double, double>':
../boost/math/special_functions/sign.hpp:186:4:   required by substitution of 'template<class T, class U> typename boost::math::tools::promote_args_permissive<T, U>::type boost::math::copysign(const T&, const U&) [with T = double; U = double]'
../boost/units/cmath.hpp:191:80:   required from 'constexpr boost::units::quantity<Unit1, T1> boost::units::copysign(const boost::units::quantity<Unit1, T1>&, const boost::units::quantity<Unit1, T1>&) [with Unit = boost::units::unit<boost::units::list<boost::units::dim<boost::units::length_base_dimension, boost::units::static_rational<2l> >, boost::units::list<boost::units::dim<boost::units::mass_base_dimension, boost::units::static_rational<1l> >, boost::units::list<boost::units::dim<boost::units::time_base_dimension, boost::units::static_rational<-2l> >, boost::units::dimensionless_type> > >, boost::units::homogeneous_system<boost::units::list<boost::units::length_unit, boost::units::list<boost::units::mass_unit, boost::units::list<boost::units::time_unit, boost::units::dimensionless_type> > > > >; Y = double]'
../libs/units/test/test_cmath.cpp:99:5:   required from here
../boost/math/tools/promotion.hpp:108:23: error: no type named 'type' in 'struct boost::math::tools::pa2_integral_already_removed<double, double, true>'
                >::type;
                       ^
In file included from ../libs/units/test/test_cmath.cpp:26:0:
../boost/units/cmath.hpp: In instantiation of 'constexpr boost::units::quantity<Unit1, T1> boost::units::copysign(const boost::units::quantity<Unit1, T1>&, const boost::units::quantity<Unit1, T1>&) [with Unit = boost::units::unit<boost::units::list<boost::units::dim<boost::units::length_base_dimension, boost::units::static_rational<2l> >, boost::units::list<boost::units::dim<boost::units::mass_base_dimension, boost::units::static_rational<1l> >, boost::units::list<boost::units::dim<boost::units::time_base_dimension, boost::units::static_rational<-2l> >, boost::units::dimensionless_type> > >, boost::units::homogeneous_system<boost::units::list<boost::units::length_unit, boost::units::list<boost::units::mass_unit, boost::units::list<boost::units::time_unit, boost::units::dimensionless_type> > > > >; Y = double]':
../libs/units/test/test_cmath.cpp:99:5:   required from here
../boost/units/cmath.hpp:191:80: error: no matching function for call to 'copysign(const value_type&, const value_type&)'
     return quantity_type::from_value(copysign BOOST_PREVENT_MACRO_SUBSTITUTION (q1.value(),q2.value()));
                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from ../boost/math/special_functions/next.hpp:21:0,
                 from ../boost/units/cmath.hpp:19,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/special_functions/sign.hpp:186:4: note: candidate: template<class T, class U> typename boost::math::tools::promote_args_permissive<T, U>::type boost::math::copysign(const T&, const U&)
    copysign BOOST_NO_MACRO_EXPAND(const T& x, const U& y)
    ^~~~~~~~
../boost/math/special_functions/sign.hpp:186:4: note:   substitution of deduced template arguments resulted in errors seen above
In file included from ../libs/units/test/test_cmath.cpp:26:0:
../boost/units/cmath.hpp:192:1: error: body of constexpr function 'constexpr boost::units::quantity<Unit1, T1> boost::units::copysign(const boost::units::quantity<Unit1, T1>&, const boost::units::quantity<Unit1, T1>&) [with Unit = boost::units::unit<boost::units::list<boost::units::dim<boost::units::length_base_dimension, boost::units::static_rational<2l> >, boost::units::list<boost::units::dim<boost::units::mass_base_dimension, boost::units::static_rational<1l> >, boost::units::list<boost::units::dim<boost::units::time_base_dimension, boost::units::static_rational<-2l> >, boost::units::dimensionless_type> > >, boost::units::homogeneous_system<boost::units::list<boost::units::length_unit, boost::units::list<boost::units::mass_unit, boost::units::list<boost::units::time_unit, boost::units::dimensionless_type> > > > >; Y = double]' not a return-statement
 }
 ^
../boost/units/cmath.hpp: In instantiation of 'constexpr typename boost::units::root_typeof_helper<typename boost::units::add_typeof_helper<typename boost::units::power_typeof_helper<boost::units::quantity<Unit1, T1>, boost::units::static_rational<2l> >::type, typename boost::units::power_typeof_helper<boost::units::quantity<Unit1, T1>, boost::units::static_rational<2l> >::type>::type, boost::units::static_rational<2l> >::type boost::units::hypot(const boost::units::quantity<Unit1, T1>&, const boost::units::quantity<Unit1, T1>&) [with Unit = boost::units::unit<boost::units::list<boost::units::dim<boost::units::length_base_dimension, boost::units::static_rational<1l> >, boost::units::dimensionless_type>, boost::units::homogeneous_system<boost::units::list<boost::units::length_unit, boost::units::list<boost::units::mass_unit, boost::units::list<boost::units::time_unit, boost::units::dimensionless_type> > > > >; Y = double; typename boost::units::root_typeof_helper<typename boost::units::add_typeof_helper<typename boost::units::power_typeof_helper<boost::units::quantity<Unit1, T1>, boost::units::static_rational<2l> >::type, typename boost::units::power_typeof_helper<boost::units::quantity<Unit1, T1>, boost::units::static_rational<2l> >::type>::type, boost::units::static_rational<2l> >::type = boost::units::quantity<boost::units::unit<boost::units::list<boost::units::dim<boost::units::length_base_dimension, boost::units::static_rational<1l> >, boost::units::dimensionless_type>, boost::units::homogeneous_system<boost::units::list<boost::units::length_unit, boost::units::list<boost::units::mass_unit, boost::units::list<boost::units::time_unit, boost::units::dimensionless_type> > > > > >]':
../libs/units/test/test_cmath.cpp:119:5:   required from here
../boost/units/cmath.hpp:320:77: error: no matching function for call to 'hypot(const value_type&, const value_type&)'
     return quantity_type::from_value(hypot BOOST_PREVENT_MACRO_SUBSTITUTION (q1.value(),q2.value()));
                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from ../boost/units/cmath.hpp:18:0,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/special_functions/hypot.hpp:60:4: note: candidate: template<class T1, class T2> boost::math::tools::promote_args_t<RT1, RT2> boost::math::hypot(T1, T2)
    hypot(T1 x, T2 y)
    ^~~~~
../boost/math/special_functions/hypot.hpp:60:4: note:   template argument deduction/substitution failed:
../boost/math/special_functions/hypot.hpp:69:4: note: candidate: template<class T1, class T2, class Policy> boost::math::tools::promote_args_t<RT1, RT2> boost::math::hypot(T1, T2, const Policy&)
    hypot(T1 x, T2 y, const Policy& pol)
    ^~~~~
../boost/math/special_functions/hypot.hpp:69:4: note:   template argument deduction/substitution failed:
In file included from ../libs/units/test/test_cmath.cpp:26:0:
../boost/units/cmath.hpp:320:77: note:   candidate expects 3 arguments, 2 provided
     return quantity_type::from_value(hypot BOOST_PREVENT_MACRO_SUBSTITUTION (q1.value(),q2.value()));
                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
../boost/units/cmath.hpp:321:1: error: body of constexpr function 'constexpr typename boost::units::root_typeof_helper<typename boost::units::add_typeof_helper<typename boost::units::power_typeof_helper<boost::units::quantity<Unit1, T1>, boost::units::static_rational<2l> >::type, typename boost::units::power_typeof_helper<boost::units::quantity<Unit1, T1>, boost::units::static_rational<2l> >::type>::type, boost::units::static_rational<2l> >::type boost::units::hypot(const boost::units::quantity<Unit1, T1>&, const boost::units::quantity<Unit1, T1>&) [with Unit = boost::units::unit<boost::units::list<boost::units::dim<boost::units::length_base_dimension, boost::units::static_rational<1l> >, boost::units::dimensionless_type>, boost::units::homogeneous_system<boost::units::list<boost::units::length_unit, boost::units::list<boost::units::mass_unit, boost::units::list<boost::units::time_unit, boost::units::dimensionless_type> > > > >; Y = double; typename boost::units::root_typeof_helper<typename boost::units::add_typeof_helper<typename boost::units::power_typeof_helper<boost::units::quantity<Unit1, T1>, boost::units::static_rational<2l> >::type, typename boost::units::power_typeof_helper<boost::units::quantity<Unit1, T1>, boost::units::static_rational<2l> >::type>::type, boost::units::static_rational<2l> >::type = boost::units::quantity<boost::units::unit<boost::units::list<boost::units::dim<boost::units::length_base_dimension, boost::units::static_rational<1l> >, boost::units::dimensionless_type>, boost::units::homogeneous_system<boost::units::list<boost::units::length_unit, boost::units::list<boost::units::mass_unit, boost::units::list<boost::units::time_unit, boost::units::dimensionless_type> > > > > >]' not a return-statement
 }
 ^
../boost/units/cmath.hpp: In instantiation of 'constexpr boost::units::quantity<Unit1, T1> boost::units::nextafter(const boost::units::quantity<Unit1, T1>&, const boost::units::quantity<Unit1, T1>&) [with Unit = boost::units::unit<boost::units::list<boost::units::dim<boost::units::length_base_dimension, boost::units::static_rational<2l> >, boost::units::list<boost::units::dim<boost::units::mass_base_dimension, boost::units::static_rational<1l> >, boost::units::list<boost::units::dim<boost::units::time_base_dimension, boost::units::static_rational<-2l> >, boost::units::dimensionless_type> > >, boost::units::homogeneous_system<boost::units::list<boost::units::length_unit, boost::units::list<boost::units::mass_unit, boost::units::list<boost::units::time_unit, boost::units::dimensionless_type> > > > >; Y = double]':
../libs/units/test/test_cmath.cpp:130:5:   required from here
../boost/units/cmath.hpp:378:81: error: no matching function for call to 'nextafter(const value_type&, const value_type&)'
     return quantity_type::from_value(nextafter BOOST_PREVENT_MACRO_SUBSTITUTION (q1.value(),q2.value()));
                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from ../boost/units/cmath.hpp:19:0,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/special_functions/next.hpp:476:49: note: candidate: template<class T, class U, class Policy> boost::math::tools::promote_args_t<RT1, RT2> boost::math::nextafter(const T&, const U&, const Policy&)
 inline typename tools::promote_args<T, U>::type nextafter(const T& val, const U& direction, const Policy& pol)
                                                 ^~~~~~~~~
../boost/math/special_functions/next.hpp:476:49: note:   template argument deduction/substitution failed:
In file included from ../libs/units/test/test_cmath.cpp:26:0:
../boost/units/cmath.hpp:378:81: note:   candidate expects 3 arguments, 2 provided
     return quantity_type::from_value(nextafter BOOST_PREVENT_MACRO_SUBSTITUTION (q1.value(),q2.value()));
                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from ../boost/units/cmath.hpp:19:0,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/special_functions/next.hpp:483:49: note: candidate: template<class T, class U> boost::math::tools::promote_args_t<RT1, RT2> boost::math::nextafter(const T&, const U&)
 inline typename tools::promote_args<T, U>::type nextafter(const T& val, const U& direction)
                                                 ^~~~~~~~~
../boost/math/special_functions/next.hpp:483:49: note:   template argument deduction/substitution failed:
In file included from ../libs/units/test/test_cmath.cpp:26:0:
../boost/units/cmath.hpp:379:1: error: body of constexpr function 'constexpr boost::units::quantity<Unit1, T1> boost::units::nextafter(const boost::units::quantity<Unit1, T1>&, const boost::units::quantity<Unit1, T1>&) [with Unit = boost::units::unit<boost::units::list<boost::units::dim<boost::units::length_base_dimension, boost::units::static_rational<2l> >, boost::units::list<boost::units::dim<boost::units::mass_base_dimension, boost::units::static_rational<1l> >, boost::units::list<boost::units::dim<boost::units::time_base_dimension, boost::units::static_rational<-2l> >, boost::units::dimensionless_type> > >, boost::units::homogeneous_system<boost::units::list<boost::units::length_unit, boost::units::list<boost::units::mass_unit, boost::units::list<boost::units::time_unit, boost::units::dimensionless_type> > > > >; Y = double]' not a return-statement
 }
 ^
In file included from ../libs/units/test/test_header.hpp:27:0,
                 from ../libs/units/test/test_cmath.cpp:28:
../libs/units/test/test_cmath.cpp: In function 'int main()':
../libs/units/test/test_cmath.cpp:130:96: error: no matching function for call to 'nextafter(const value_type&, const value_type&)'
     BOOST_TEST((bu::nextafter)(E4,E5).value() == (boost::math::nextafter)(E4.value(),E5.value()));
                                                                                                ^
../boost/core/lightweight_test.hpp:533:107: note: in definition of macro 'BOOST_TEST'
 #define BOOST_TEST(expr) ( ::boost::detail::test_impl(#expr, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, (expr)? true: false) )
                                                                                                           ^~~~
In file included from ../boost/units/cmath.hpp:19:0,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/special_functions/next.hpp:476:49: note: candidate: template<class T, class U, class Policy> boost::math::tools::promote_args_t<RT1, RT2> boost::math::nextafter(const T&, const U&, const Policy&)
 inline typename tools::promote_args<T, U>::type nextafter(const T& val, const U& direction, const Policy& pol)
                                                 ^~~~~~~~~
../boost/math/special_functions/next.hpp:476:49: note:   template argument deduction/substitution failed:
In file included from ../libs/units/test/test_header.hpp:27:0,
                 from ../libs/units/test/test_cmath.cpp:28:
../libs/units/test/test_cmath.cpp:130:96: note:   candidate expects 3 arguments, 2 provided
     BOOST_TEST((bu::nextafter)(E4,E5).value() == (boost::math::nextafter)(E4.value(),E5.value()));
                                                                                                ^
../boost/core/lightweight_test.hpp:533:107: note: in definition of macro 'BOOST_TEST'
 #define BOOST_TEST(expr) ( ::boost::detail::test_impl(#expr, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, (expr)? true: false) )
                                                                                                           ^~~~
In file included from ../boost/units/cmath.hpp:19:0,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/special_functions/next.hpp:483:49: note: candidate: template<class T, class U> boost::math::tools::promote_args_t<RT1, RT2> boost::math::nextafter(const T&, const U&)
 inline typename tools::promote_args<T, U>::type nextafter(const T& val, const U& direction)
                                                 ^~~~~~~~~
../boost/math/special_functions/next.hpp:483:49: note:   template argument deduction/substitution failed:
In file included from ../libs/units/test/test_header.hpp:27:0,
                 from ../libs/units/test/test_cmath.cpp:28:
../libs/units/test/test_cmath.cpp:131:96: error: no matching function for call to 'nextafter(const value_type&, const value_type&)'
     BOOST_TEST((bu::nextafter)(E5,E4).value() == (boost::math::nextafter)(E5.value(),E4.value()));
                                                                                                ^
../boost/core/lightweight_test.hpp:533:107: note: in definition of macro 'BOOST_TEST'
 #define BOOST_TEST(expr) ( ::boost::detail::test_impl(#expr, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, (expr)? true: false) )
                                                                                                           ^~~~
In file included from ../boost/units/cmath.hpp:19:0,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/special_functions/next.hpp:476:49: note: candidate: template<class T, class U, class Policy> boost::math::tools::promote_args_t<RT1, RT2> boost::math::nextafter(const T&, const U&, const Policy&)
 inline typename tools::promote_args<T, U>::type nextafter(const T& val, const U& direction, const Policy& pol)
                                                 ^~~~~~~~~
../boost/math/special_functions/next.hpp:476:49: note:   template argument deduction/substitution failed:
In file included from ../libs/units/test/test_header.hpp:27:0,
                 from ../libs/units/test/test_cmath.cpp:28:
../libs/units/test/test_cmath.cpp:131:96: note:   candidate expects 3 arguments, 2 provided
     BOOST_TEST((bu::nextafter)(E5,E4).value() == (boost::math::nextafter)(E5.value(),E4.value()));
                                                                                                ^
../boost/core/lightweight_test.hpp:533:107: note: in definition of macro 'BOOST_TEST'
 #define BOOST_TEST(expr) ( ::boost::detail::test_impl(#expr, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, (expr)? true: false) )
                                                                                                           ^~~~
In file included from ../boost/units/cmath.hpp:19:0,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/special_functions/next.hpp:483:49: note: candidate: template<class T, class U> boost::math::tools::promote_args_t<RT1, RT2> boost::math::nextafter(const T&, const U&)
 inline typename tools::promote_args<T, U>::type nextafter(const T& val, const U& direction)
                                                 ^~~~~~~~~
../boost/math/special_functions/next.hpp:483:49: note:   template argument deduction/substitution failed:
In file included from ../libs/units/test/test_cmath.cpp:26:0:
../boost/units/cmath.hpp: In instantiation of 'constexpr boost::units::quantity<Unit1, T1> boost::units::nexttoward(const boost::units::quantity<Unit1, T1>&, const boost::units::quantity<Unit1, T1>&) [with Unit = boost::units::unit<boost::units::list<boost::units::dim<boost::units::length_base_dimension, boost::units::static_rational<2l> >, boost::units::list<boost::units::dim<boost::units::mass_base_dimension, boost::units::static_rational<1l> >, boost::units::list<boost::units::dim<boost::units::time_base_dimension, boost::units::static_rational<-2l> >, boost::units::dimensionless_type> > >, boost::units::homogeneous_system<boost::units::list<boost::units::length_unit, boost::units::list<boost::units::mass_unit, boost::units::list<boost::units::time_unit, boost::units::dimensionless_type> > > > >; Y = double]':
../libs/units/test/test_cmath.cpp:133:5:   required from here
../boost/units/cmath.hpp:393:81: error: no matching function for call to 'nextafter(const value_type&, const value_type&)'
     return quantity_type::from_value(nextafter BOOST_PREVENT_MACRO_SUBSTITUTION (q1.value(),q2.value()));
                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from ../boost/units/cmath.hpp:19:0,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/special_functions/next.hpp:476:49: note: candidate: template<class T, class U, class Policy> boost::math::tools::promote_args_t<RT1, RT2> boost::math::nextafter(const T&, const U&, const Policy&)
 inline typename tools::promote_args<T, U>::type nextafter(const T& val, const U& direction, const Policy& pol)
                                                 ^~~~~~~~~
../boost/math/special_functions/next.hpp:476:49: note:   template argument deduction/substitution failed:
In file included from ../libs/units/test/test_cmath.cpp:26:0:
../boost/units/cmath.hpp:393:81: note:   candidate expects 3 arguments, 2 provided
     return quantity_type::from_value(nextafter BOOST_PREVENT_MACRO_SUBSTITUTION (q1.value(),q2.value()));
                                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
In file included from ../boost/units/cmath.hpp:19:0,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/special_functions/next.hpp:483:49: note: candidate: template<class T, class U> boost::math::tools::promote_args_t<RT1, RT2> boost::math::nextafter(const T&, const U&)
 inline typename tools::promote_args<T, U>::type nextafter(const T& val, const U& direction)
                                                 ^~~~~~~~~
../boost/math/special_functions/next.hpp:483:49: note:   template argument deduction/substitution failed:
In file included from ../libs/units/test/test_cmath.cpp:26:0:
../boost/units/cmath.hpp:394:1: error: body of constexpr function 'constexpr boost::units::quantity<Unit1, T1> boost::units::nexttoward(const boost::units::quantity<Unit1, T1>&, const boost::units::quantity<Unit1, T1>&) [with Unit = boost::units::unit<boost::units::list<boost::units::dim<boost::units::length_base_dimension, boost::units::static_rational<2l> >, boost::units::list<boost::units::dim<boost::units::mass_base_dimension, boost::units::static_rational<1l> >, boost::units::list<boost::units::dim<boost::units::time_base_dimension, boost::units::static_rational<-2l> >, boost::units::dimensionless_type> > >, boost::units::homogeneous_system<boost::units::list<boost::units::length_unit, boost::units::list<boost::units::mass_unit, boost::units::list<boost::units::time_unit, boost::units::dimensionless_type> > > > >; Y = double]' not a return-statement
 }
 ^
In file included from ../libs/units/test/test_header.hpp:27:0,
                 from ../libs/units/test/test_cmath.cpp:28:
../libs/units/test/test_cmath.cpp:133:97: error: no matching function for call to 'nextafter(const value_type&, const value_type&)'
     BOOST_TEST((bu::nexttoward)(E4,E5).value() == (boost::math::nextafter)(E4.value(),E5.value()));
                                                                                                 ^
../boost/core/lightweight_test.hpp:533:107: note: in definition of macro 'BOOST_TEST'
 #define BOOST_TEST(expr) ( ::boost::detail::test_impl(#expr, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, (expr)? true: false) )
                                                                                                           ^~~~
In file included from ../boost/units/cmath.hpp:19:0,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/special_functions/next.hpp:476:49: note: candidate: template<class T, class U, class Policy> boost::math::tools::promote_args_t<RT1, RT2> boost::math::nextafter(const T&, const U&, const Policy&)
 inline typename tools::promote_args<T, U>::type nextafter(const T& val, const U& direction, const Policy& pol)
                                                 ^~~~~~~~~
../boost/math/special_functions/next.hpp:476:49: note:   template argument deduction/substitution failed:
In file included from ../libs/units/test/test_header.hpp:27:0,
                 from ../libs/units/test/test_cmath.cpp:28:
../libs/units/test/test_cmath.cpp:133:97: note:   candidate expects 3 arguments, 2 provided
     BOOST_TEST((bu::nexttoward)(E4,E5).value() == (boost::math::nextafter)(E4.value(),E5.value()));
                                                                                                 ^
../boost/core/lightweight_test.hpp:533:107: note: in definition of macro 'BOOST_TEST'
 #define BOOST_TEST(expr) ( ::boost::detail::test_impl(#expr, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, (expr)? true: false) )
                                                                                                           ^~~~
In file included from ../boost/units/cmath.hpp:19:0,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/special_functions/next.hpp:483:49: note: candidate: template<class T, class U> boost::math::tools::promote_args_t<RT1, RT2> boost::math::nextafter(const T&, const U&)
 inline typename tools::promote_args<T, U>::type nextafter(const T& val, const U& direction)
                                                 ^~~~~~~~~
../boost/math/special_functions/next.hpp:483:49: note:   template argument deduction/substitution failed:
In file included from ../libs/units/test/test_header.hpp:27:0,
                 from ../libs/units/test/test_cmath.cpp:28:
../libs/units/test/test_cmath.cpp:134:97: error: no matching function for call to 'nextafter(const value_type&, const value_type&)'
     BOOST_TEST((bu::nexttoward)(E5,E4).value() == (boost::math::nextafter)(E5.value(),E4.value()));
                                                                                                 ^
../boost/core/lightweight_test.hpp:533:107: note: in definition of macro 'BOOST_TEST'
 #define BOOST_TEST(expr) ( ::boost::detail::test_impl(#expr, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, (expr)? true: false) )
                                                                                                           ^~~~
In file included from ../boost/units/cmath.hpp:19:0,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/special_functions/next.hpp:476:49: note: candidate: template<class T, class U, class Policy> boost::math::tools::promote_args_t<RT1, RT2> boost::math::nextafter(const T&, const U&, const Policy&)
 inline typename tools::promote_args<T, U>::type nextafter(const T& val, const U& direction, const Policy& pol)
                                                 ^~~~~~~~~
../boost/math/special_functions/next.hpp:476:49: note:   template argument deduction/substitution failed:
In file included from ../libs/units/test/test_header.hpp:27:0,
                 from ../libs/units/test/test_cmath.cpp:28:
../libs/units/test/test_cmath.cpp:134:97: note:   candidate expects 3 arguments, 2 provided
     BOOST_TEST((bu::nexttoward)(E5,E4).value() == (boost::math::nextafter)(E5.value(),E4.value()));
                                                                                                 ^
../boost/core/lightweight_test.hpp:533:107: note: in definition of macro 'BOOST_TEST'
 #define BOOST_TEST(expr) ( ::boost::detail::test_impl(#expr, __FILE__, __LINE__, BOOST_CURRENT_FUNCTION, (expr)? true: false) )
                                                                                                           ^~~~
In file included from ../boost/units/cmath.hpp:19:0,
                 from ../libs/units/test/test_cmath.cpp:26:
../boost/math/special_functions/next.hpp:483:49: note: candidate: template<class T, class U> boost::math::tools::promote_args_t<RT1, RT2> boost::math::nextafter(const T&, const U&)
 inline typename tools::promote_args<T, U>::type nextafter(const T& val, const U& direction)
                                                 ^~~~~~~~~
../boost/math/special_functions/next.hpp:483:49: note:   template argument deduction/substitution failed: