// Boost.Geometry // Copyright (c) 2021, Oracle and/or its affiliates. // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle // Licensed under the Boost Software License version 1.0. // http://www.boost.org/users/license.html #ifndef BOOST_GEOMETRY_GEOMETRIES_ADAPTED_BOOST_VARIANT2_HPP #define BOOST_GEOMETRY_GEOMETRIES_ADAPTED_BOOST_VARIANT2_HPP #include #include #include #include #include #include #include namespace boost { namespace geometry { namespace traits { template struct tag> { using type = dynamic_geometry_tag; }; template struct visit> { template static void apply(Function && function, Variant && variant) { boost::variant2::visit(std::forward(function), std::forward(variant)); } }; template struct visit, boost::variant2::variant> { template static void apply(Function && function, Variant1 && variant1, Variant2 && variant2) { boost::variant2::visit(std::forward(function), std::forward(variant1), std::forward(variant2)); } }; template struct geometry_types> { using type = util::type_sequence; }; } // namespace traits }} // namespace boost::geometry #endif // BOOST_GEOMETRY_GEOMETRIES_ADAPTED_BOOST_VARIANT2_HPP