1 2 // Copyright John Maddock 2013. 3 // Use, modification and distribution are subject to the 4 // Boost Software License, Version 1.0. (See accompanying file 5 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 7 // 8 // This tests two things: that multiprecision::number meets our 9 // conceptual requirements, and that we can instantiate 10 // all our distributions and special functions on this type. 11 // 12 #define BOOST_MATH_ASSERT_UNDEFINED_POLICY false 13 #define TEST_GROUP_9 14 15 #ifdef _MSC_VER 16 # pragma warning(disable:4800) 17 # pragma warning(disable:4512) 18 # pragma warning(disable:4127) 19 # pragma warning(disable:4512) 20 # pragma warning(disable:4503) // decorated name length exceeded, name was truncated 21 #endif 22 23 #include <boost/multiprecision/cpp_dec_float.hpp> 24 #include <boost/math/concepts/real_type_concept.hpp> 25 #include "compile_test/instantiate.hpp" 26 27 using namespace boost::multiprecision; 28 29 typedef number<cpp_dec_float<50>, et_on> test_type; 30 31 // We get sporadic internal compiler errors from gcc-7.x when CI testing 32 // that don't appear to be reproducible locally. gcc-6.x and gcc-8.x are fine 33 // so for now it's a <shrug> and move on... 34 #if ! (defined(BOOST_GCC) && (__GNUC__ == 7)) 35 foo()36void foo() 37 { 38 instantiate(test_type()); 39 } 40 41 #endif 42 main()43int main() 44 { 45 //BOOST_CONCEPT_ASSERT((boost::math::concepts::RealTypeConcept<test_type>)); 46 } 47 48 49