// Boost.Geometry (aka GGL, Generic Geometry Library) // Unit Test // Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands. // Copyright (c) 2008-2012 Bruno Lalande, Paris, France. // Copyright (c) 2009-2012 Mateusz Loskot, London, UK. // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands. // Use, modification and distribution is subject to the Boost Software License, // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #include #include struct user_defined {}; template void test() { typedef typename bg::select_most_precise::type type; bool is_same = boost::is_same::type::value; BOOST_CHECK_MESSAGE(is_same, "The most precise of types " "T1: {" << typeid(T1).name() << " | s: " << sizeof(T1) << "}" << " and " "T2: {" << typeid(T2).name() << " | s: " << sizeof(T2) << "}" << " does not match " "ExpectedType: {" << typeid(ExpectedType).name() << " | s: " << sizeof(ExpectedType) << "}"); } int test_main(int, char* []) { // fp only test(); test(); test(); test(); // integer only test(); test(); test(); test(); // int/fp test(); test(); test(); test(); test(); #ifndef _MSC_VER // This cannot be done for MSVC because double/long double is the same test(); test(); #endif // with any other non-integer/float class test(); test(); test(); test(); test(); // should not compile //test(); return 0; }