// 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 #include using namespace boost::geometry; struct user_defined { }; template struct check_selection : public boost::mpl::int_<0> {}; template <> struct check_selection : public boost::mpl::int_<1> {}; template <> struct check_selection : public boost::mpl::int_<2> {}; template <> struct check_selection : public boost::mpl::int_<11> {}; template <> struct check_selection : public boost::mpl::int_<12> {}; template <> struct check_selection : public boost::mpl::int_<13> {}; template <> struct check_selection : public boost::mpl::int_<99> {}; template <> struct check_selection : public boost::mpl::int_<98> {}; template void test() { typedef typename bg::select_most_precise::type type; BOOST_CHECK_EQUAL(check_selection::type::value, check_selection::type::value); } 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; }