// Boost.Geometry // Unit Test // Copyright (c) 2021 Oracle and/or its affiliates. // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle // 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 #include #include #include using point_t = bg::model::point; using linestring_t = bg::model::linestring; using polygon_t = bg::model::polygon; template void test_all() { DynamicGeometry dg = point_t(1, 2); bg::traits::visit::apply([](auto g) { BOOST_CHECK(bg::util::is_point::value); static_assert(! std::is_const::value); }, dg); bg::traits::visit::apply([](auto const g) { BOOST_CHECK(bg::util::is_point::value); static_assert(std::is_const::value); }, dg); bg::traits::visit::apply([](auto & g) { BOOST_CHECK(bg::util::is_point::value); static_assert(! std::is_const>::value); }, dg); bg::traits::visit::apply([](auto const& g) { BOOST_CHECK(bg::util::is_point::value); static_assert(std::is_const>::value); }, dg); DynamicGeometry const cdg = point_t(3, 4); bg::traits::visit::apply([](auto g) { BOOST_CHECK(bg::util::is_point::value); static_assert(! std::is_const::value); }, cdg); bg::traits::visit::apply([](auto const g) { BOOST_CHECK(bg::util::is_point::value); static_assert(std::is_const::value); }, cdg); bg::traits::visit::apply([](auto & g) { BOOST_CHECK(bg::util::is_point::value); static_assert(std::is_const>::value); }, cdg); bg::traits::visit::apply([](auto const& g) { BOOST_CHECK(bg::util::is_point::value); static_assert(std::is_const>::value); }, cdg); } int test_main(int, char* []) { using variant_t = boost::variant; using variant2_t = boost::variant2::variant; test_all(); test_all(); return 0; }