// Boost.Geometry (aka GGL, Generic Geometry Library) test file // // Copyright Barend Gehrels 2007-2009, Geodan, Amsterdam, the Netherlands // Copyright Bruno Lalande 2008, 2009 // 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 boost::geometry::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; }