diff --git a/include/boost/geometry/core/access.hpp b/include/boost/geometry/core/access.hpp index b36ee2d5f..c9c706b2f 100644 --- a/include/boost/geometry/core/access.hpp +++ b/include/boost/geometry/core/access.hpp @@ -20,14 +20,13 @@ #include -#include #include #include #include #include -#include +#include namespace boost { namespace geometry @@ -277,7 +276,7 @@ constexpr inline typename coordinate_type::type get(Geometry const& ge typedef core_dispatch::access < typename tag::type, - typename geometry::util::bare_type::type, + typename detail::remove_cptrref::type, typename coordinate_type::type, Dimension, typename std::is_pointer::type @@ -310,7 +309,7 @@ inline void set(Geometry& geometry typedef core_dispatch::access < typename tag::type, - typename geometry::util::bare_type::type, + typename detail::remove_cptrref::type, typename coordinate_type::type, Dimension, typename std::is_pointer::type @@ -343,7 +342,7 @@ constexpr inline typename coordinate_type::type get(Geometry const& ge typedef core_dispatch::indexed_access < typename tag::type, - typename geometry::util::bare_type::type, + typename detail::remove_cptrref::type, typename coordinate_type::type, Index, Dimension, @@ -378,7 +377,7 @@ inline void set(Geometry& geometry typedef core_dispatch::indexed_access < typename tag::type, - typename geometry::util::bare_type::type, + typename detail::remove_cptrref::type, typename coordinate_type::type, Index, Dimension, diff --git a/include/boost/geometry/core/closure.hpp b/include/boost/geometry/core/closure.hpp index 1464bf7db..140391c9c 100644 --- a/include/boost/geometry/core/closure.hpp +++ b/include/boost/geometry/core/closure.hpp @@ -19,15 +19,13 @@ #ifndef BOOST_GEOMETRY_CORE_CLOSURE_HPP #define BOOST_GEOMETRY_CORE_CLOSURE_HPP -#include - #include #include #include #include #include -#include +#include namespace boost { namespace geometry { @@ -196,7 +194,7 @@ struct closure static const closure_selector value = core_dispatch::closure < typename tag::type, - typename util::bare_type::type + typename detail::remove_cptrref::type >::value; }; diff --git a/include/boost/geometry/core/coordinate_dimension.hpp b/include/boost/geometry/core/coordinate_dimension.hpp index e0475ccf0..271ca2424 100644 --- a/include/boost/geometry/core/coordinate_dimension.hpp +++ b/include/boost/geometry/core/coordinate_dimension.hpp @@ -20,13 +20,12 @@ #include -#include #include #include #include -#include +#include namespace boost { namespace geometry { @@ -68,13 +67,13 @@ struct dimension : std::integral_constant < std::size_t, - traits::dimension::type>::value + traits::dimension>::value > { BOOST_MPL_ASSERT_MSG( - (traits::dimension::type>::value > 0), + (traits::dimension>::value > 0), INVALID_DIMENSION_VALUE, - (traits::dimension::type>) + (traits::dimension>) ); }; @@ -93,7 +92,7 @@ struct dimension : core_dispatch::dimension < typename tag::type, - typename geometry::util::bare_type::type + typename detail::remove_cptrref::type > {}; diff --git a/include/boost/geometry/core/coordinate_system.hpp b/include/boost/geometry/core/coordinate_system.hpp index d33353f4b..1447d7a8f 100644 --- a/include/boost/geometry/core/coordinate_system.hpp +++ b/include/boost/geometry/core/coordinate_system.hpp @@ -4,6 +4,10 @@ // Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. // Copyright (c) 2009-2012 Mateusz Loskot, London, UK. +// This file was modified by Oracle on 2020. +// Modifications copyright (c) 2020, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands. @@ -18,7 +22,7 @@ #include #include -#include +#include namespace boost { namespace geometry @@ -67,7 +71,7 @@ namespace core_dispatch { typedef typename traits::coordinate_system < - typename geometry::util::bare_type::type + typename detail::remove_cptrref::type >::type type; }; @@ -89,7 +93,7 @@ struct coordinate_system typedef typename core_dispatch::coordinate_system < typename tag::type, - typename geometry::util::bare_type::type + typename detail::remove_cptrref::type >::type type; }; diff --git a/include/boost/geometry/core/coordinate_type.hpp b/include/boost/geometry/core/coordinate_type.hpp index 47c028fec..ebfb8ee14 100644 --- a/include/boost/geometry/core/coordinate_type.hpp +++ b/include/boost/geometry/core/coordinate_type.hpp @@ -4,6 +4,10 @@ // Copyright (c) 2008-2012 Barend Gehrels, Amsterdam, the Netherlands. // Copyright (c) 2009-2012 Mateusz Loskot, London, UK. +// This file was modified by Oracle on 2020. +// Modifications copyright (c) 2020, Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands. @@ -19,8 +23,8 @@ #include #include -#include #include +#include namespace boost { namespace geometry @@ -66,7 +70,7 @@ struct coordinate_type { typedef typename traits::coordinate_type < - typename geometry::util::bare_type::type + typename detail::remove_cptrref::type >::type type; }; @@ -86,10 +90,10 @@ template struct coordinate_type { typedef typename core_dispatch::coordinate_type - < - typename tag::type, - typename geometry::util::bare_type::type - >::type type; + < + typename tag::type, + typename detail::remove_cptrref::type + >::type type; }; template diff --git a/include/boost/geometry/core/point_order.hpp b/include/boost/geometry/core/point_order.hpp index df6d4bbff..d0cd9b3fa 100644 --- a/include/boost/geometry/core/point_order.hpp +++ b/include/boost/geometry/core/point_order.hpp @@ -4,8 +4,8 @@ // Copyright (c) 2008-2012 Bruno Lalande, Paris, France. // Copyright (c) 2009-2012 Mateusz Loskot, London, UK. -// This file was modified by Oracle on 2014. -// Modifications copyright (c) 2014 Oracle and/or its affiliates. +// This file was modified by Oracle on 2014-2020. +// Modifications copyright (c) 2014-2020 Oracle and/or its affiliates. // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle @@ -26,7 +26,7 @@ #include #include #include -#include +#include namespace boost { namespace geometry { @@ -178,7 +178,7 @@ struct point_order static const order_selector value = core_dispatch::point_order < typename tag::type, - typename util::bare_type::type + typename detail::remove_cptrref::type >::value; }; diff --git a/include/boost/geometry/core/point_type.hpp b/include/boost/geometry/core/point_type.hpp index fdb862bb2..e010666c0 100644 --- a/include/boost/geometry/core/point_type.hpp +++ b/include/boost/geometry/core/point_type.hpp @@ -19,15 +19,13 @@ #define BOOST_GEOMETRY_CORE_POINT_TYPE_HPP -#include - #include #include #include #include #include -#include +#include namespace boost { namespace geometry @@ -157,7 +155,7 @@ struct point_type typedef typename core_dispatch::point_type < typename tag::type, - typename boost::geometry::util::bare_type::type + typename detail::remove_cptrref::type >::type type; }; diff --git a/include/boost/geometry/core/radius.hpp b/include/boost/geometry/core/radius.hpp index d4e79f153..f3681bbac 100644 --- a/include/boost/geometry/core/radius.hpp +++ b/include/boost/geometry/core/radius.hpp @@ -22,13 +22,12 @@ #include -#include #include #include #include -#include +#include namespace boost { namespace geometry @@ -111,7 +110,7 @@ struct radius_type typedef typename core_dispatch::radius_type < typename tag::type, - typename util::bare_type::type + typename detail::remove_cptrref::type >::type type; }; @@ -128,7 +127,7 @@ inline typename radius_type::type get_radius(Geometry const& geometry) return core_dispatch::radius_access < typename tag::type, - typename util::bare_type::type, + typename detail::remove_cptrref::type, I, typename std::is_pointer::type >::get(geometry); @@ -148,7 +147,7 @@ inline void set_radius(Geometry& geometry, core_dispatch::radius_access < typename tag::type, - typename util::bare_type::type, + typename detail::remove_cptrref::type, I, typename std::is_pointer::type >::set(geometry, radius); diff --git a/include/boost/geometry/core/tag.hpp b/include/boost/geometry/core/tag.hpp index 14a224270..97bba6104 100644 --- a/include/boost/geometry/core/tag.hpp +++ b/include/boost/geometry/core/tag.hpp @@ -4,6 +4,10 @@ // Copyright (c) 2008-2012 Bruno Lalande, Paris, France. // Copyright (c) 2009-2012 Mateusz Loskot, London, UK. +// This file was modified by Oracle on 2020. +// Modifications copyright (c) 2020 Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands. @@ -16,7 +20,7 @@ #include -#include +#include namespace boost { namespace geometry @@ -60,7 +64,7 @@ struct tag { typedef typename traits::tag < - typename geometry::util::bare_type::type + typename detail::remove_cptrref::type >::type type; }; diff --git a/include/boost/geometry/extensions/algebra/core/coordinate_dimension.hpp b/include/boost/geometry/extensions/algebra/core/coordinate_dimension.hpp index dff17bc6f..38b1013ef 100644 --- a/include/boost/geometry/extensions/algebra/core/coordinate_dimension.hpp +++ b/include/boost/geometry/extensions/algebra/core/coordinate_dimension.hpp @@ -5,8 +5,8 @@ // Copyright (c) 2009-2012 Mateusz Loskot, London, UK. // Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland. -// This file was modified by Oracle on 2018. -// Modifications copyright (c) 2018 Oracle and/or its affiliates. +// This file was modified by Oracle on 2018-2020. +// Modifications copyright (c) 2018-2020 Oracle and/or its affiliates. // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library @@ -19,14 +19,11 @@ #ifndef BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_CORE_COORDINATE_DIMENSION_HPP #define BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_CORE_COORDINATE_DIMENSION_HPP -#include - -#include - -#include - #include +#include +#include + namespace boost { namespace geometry { namespace traits { @@ -36,7 +33,7 @@ struct indexed_dimension { BOOST_MPL_ASSERT_MSG(false, NOT_IMPLEMENTED_FOR_THIS_GEOMETRY_OR_INDEX, - (Geometry, boost::integral_constant)); + (Geometry, std::integral_constant)); }; } // namespace traits @@ -46,12 +43,12 @@ namespace core_dispatch { template struct dimension - : traits::dimension::type> + : traits::dimension::type> {}; template struct dimension - : traits::dimension::type> + : traits::dimension::type> {}; template @@ -59,23 +56,23 @@ struct indexed_dimension { BOOST_MPL_ASSERT_MSG(false, NOT_IMPLEMENTED_FOR_THIS_GEOMETRY_OR_INDEX, - (G, boost::integral_constant)); + (G, std::integral_constant)); }; template struct indexed_dimension - : traits::indexed_dimension::type, Index> + : traits::indexed_dimension::type, Index> {}; template struct dimension - : traits::dimension::type> + : traits::dimension::type> {}; template struct dimension - : traits::dimension::type> + : traits::dimension::type> {}; } // namespace core_dispatch diff --git a/include/boost/geometry/extensions/algebra/core/coordinate_system.hpp b/include/boost/geometry/extensions/algebra/core/coordinate_system.hpp index 67c206e89..e9f0ed51c 100644 --- a/include/boost/geometry/extensions/algebra/core/coordinate_system.hpp +++ b/include/boost/geometry/extensions/algebra/core/coordinate_system.hpp @@ -5,6 +5,10 @@ // Copyright (c) 2009-2012 Mateusz Loskot, London, UK. // Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland. +// This file was modified by Oracle on 2020. +// Modifications copyright (c) 2020 Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands. @@ -16,7 +20,6 @@ #define BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_CORE_COORDINATE_SYSTEM_HPP #include - #include namespace boost { namespace geometry { @@ -28,7 +31,7 @@ template struct coordinate_system { typedef typename traits::coordinate_system< - typename geometry::util::bare_type::type + typename detail::remove_cptrref::type >::type type; }; @@ -36,7 +39,7 @@ struct coordinate_system //struct coordinate_system //{ // typedef typename traits::coordinate_system< -// typename geometry::util::bare_type::type +// typename detail::remove_cptrref::type // >::type type; //}; // @@ -44,7 +47,7 @@ struct coordinate_system //struct coordinate_system //{ // typedef typename traits::coordinate_system< -// typename geometry::util::bare_type::type +// typename detail::remove_cptrref::type // >::type type; //}; @@ -53,7 +56,7 @@ template struct coordinate_system { typedef typename traits::coordinate_system< - typename geometry::util::bare_type::type + typename detail::remove_cptrref::type >::type type; }; @@ -61,7 +64,7 @@ template struct coordinate_system { typedef typename traits::coordinate_system< - typename geometry::util::bare_type::type + typename detail::remove_cptrref::type >::type type; }; diff --git a/include/boost/geometry/extensions/algebra/core/coordinate_type.hpp b/include/boost/geometry/extensions/algebra/core/coordinate_type.hpp index d16445581..8988f5ca4 100644 --- a/include/boost/geometry/extensions/algebra/core/coordinate_type.hpp +++ b/include/boost/geometry/extensions/algebra/core/coordinate_type.hpp @@ -5,6 +5,10 @@ // Copyright (c) 2009-2012 Mateusz Loskot, London, UK. // Copyright (c) 2013 Adam Wulkiewicz, Lodz, Poland. +// This file was modified by Oracle on 2020. +// Modifications copyright (c) 2020 Oracle and/or its affiliates. +// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle + // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands. @@ -16,7 +20,6 @@ #define BOOST_GEOMETRY_EXTENSIONS_ALGEBRA_CORE_COORDINATE_TYPE_HPP #include - #include namespace boost { namespace geometry { @@ -28,7 +31,7 @@ template struct coordinate_type { typedef typename traits::coordinate_type< - typename geometry::util::bare_type::type + typename detail::remove_cptrref::type >::type type; }; @@ -36,7 +39,7 @@ template struct coordinate_type { typedef typename traits::coordinate_type< - typename geometry::util::bare_type::type + typename detail::remove_cptrref::type >::type type; }; @@ -44,7 +47,7 @@ template struct coordinate_type { typedef typename traits::coordinate_type< - typename geometry::util::bare_type::type + typename detail::remove_cptrref::type >::type type; }; @@ -53,7 +56,7 @@ template struct coordinate_type { typedef typename traits::coordinate_type< - typename geometry::util::bare_type::type + typename detail::remove_cptrref::type >::type type; }; @@ -61,7 +64,7 @@ template struct coordinate_type { typedef typename traits::coordinate_type< - typename geometry::util::bare_type::type + typename detail::remove_cptrref::type >::type type; }; diff --git a/include/boost/geometry/io/wkt/read.hpp b/include/boost/geometry/io/wkt/read.hpp index 1cbb230df..b3a7a5bfa 100644 --- a/include/boost/geometry/io/wkt/read.hpp +++ b/include/boost/geometry/io/wkt/read.hpp @@ -22,7 +22,6 @@ #include #include -#include #include #include @@ -47,15 +46,16 @@ #include #include #include -#include +#include #include #include -#include - #include +#include +#include + namespace boost { namespace geometry { @@ -264,14 +264,10 @@ struct stateful_range_appender typedef typename geometry::point_type::type point_type; typedef typename boost::range_size < - typename util::bare_type::type + typename detail::remove_cptrref::type >::type size_type; - BOOST_STATIC_ASSERT(( std::is_same - < - typename tag::type, - ring_tag - >::value )); + BOOST_STATIC_ASSERT(( detail::is_ring::value )); inline stateful_range_appender() : pt_index(0) diff --git a/include/boost/geometry/iterators/detail/segment_iterator/value_type.hpp b/include/boost/geometry/iterators/detail/segment_iterator/value_type.hpp index f105301f5..2c4d5dc7f 100644 --- a/include/boost/geometry/iterators/detail/segment_iterator/value_type.hpp +++ b/include/boost/geometry/iterators/detail/segment_iterator/value_type.hpp @@ -12,12 +12,11 @@ #define BOOST_GEOMETRY_ITERATORS_DETAIL_SEGMENT_ITERATOR_VALUE_TYPE_HPP #include -#include #include #include #include -#include +#include namespace boost { namespace geometry { @@ -53,7 +52,7 @@ struct value_type geometry::model::pointing_segment, geometry::model::segment < - typename geometry::util::bare_type + typename detail::remove_cptrref < point_iterator_value_type >::type diff --git a/include/boost/geometry/util/bare_type.hpp b/include/boost/geometry/util/bare_type.hpp index 3b37a540f..3fce1cdd8 100644 --- a/include/boost/geometry/util/bare_type.hpp +++ b/include/boost/geometry/util/bare_type.hpp @@ -16,32 +16,10 @@ #define BOOST_GEOMETRY_UTIL_BARE_TYPE_HPP -#include +#include +BOOST_HEADER_DEPRECATED("") - -namespace boost { namespace geometry -{ - -namespace util -{ - - -template -struct bare_type -{ - typedef std::remove_const_t - < - std::remove_pointer_t - < - std::remove_reference_t - > - > type; -}; - - -} // namespace util - -}} // namespace boost::geometry +#include #endif // BOOST_GEOMETRY_UTIL_BARE_TYPE_HPP diff --git a/include/boost/geometry/util/type_traits.hpp b/include/boost/geometry/util/type_traits.hpp index 2fdd9f6a2..8057685b6 100644 --- a/include/boost/geometry/util/type_traits.hpp +++ b/include/boost/geometry/util/type_traits.hpp @@ -11,11 +11,9 @@ #define BOOST_GEOMETRY_UTIL_TYPE_TRAITS_HPP -#include -#include - #include #include +#include namespace boost { namespace geometry @@ -27,70 +25,6 @@ namespace detail { -// C++17 -template -using bool_constant = std::integral_constant; - -// non-standard -template -using int_constant = std::integral_constant; - -// non-standard -template -using index_constant = std::integral_constant; - -// non-standard -template -using size_constant = std::integral_constant; - - -// C++17 -template -struct conjunction - : std::true_type -{}; -template -struct conjunction - : Trait -{}; -template -struct conjunction - : std::conditional_t, Trait> -{}; - -// C++17 -template -struct disjunction - : std::false_type -{}; -template -struct disjunction - : Trait -{}; -template -struct disjunction - : std::conditional_t> -{}; - -// C++17 -template -struct negation - : bool_constant -{}; - - -/* -template -using and_ = conjunction; - -template -using or_ = disjunction; - -template -using not_ = negation; -*/ - - template struct is_geometry : bool_constant::type>::value> @@ -288,75 +222,10 @@ template using enable_if_polysegmental_t = typename enable_if_polysegmental::type; - -// C++20 -template -struct remove_cvref -{ - using type = std::remove_cv_t>; -}; - -template -using remove_cvref_t = typename remove_cvref::type; - -// non-standard -template -struct remove_cref -{ - using type = std::remove_const_t>; -}; - -template -using remove_cref_t = typename remove_cref::type; - - - -template -struct transcribe_const -{ - using type = std::conditional_t - < - std::is_const>::value, - std::add_const_t, - To - >; -}; - -template -using transcribe_const_t = typename transcribe_const::type; - - } // namespace detail #endif // DOXYGEN_NO_DETAIL -/*! - \brief Meta-function to define a const or non const type - \ingroup utility - \details If the boolean template parameter is true, the type parameter - will be defined as const, otherwise it will be defined as it was. - This meta-function is used to have one implementation for both - const and non const references - \note This traits class is completely independant from Boost.Geometry - and might be a separate addition to Boost - \note Used in a.o. for_each, interior_rings, exterior_ring - \par Example - \code - void foo(typename add_const_if_c::type& point) - \endcode -*/ -template -struct add_const_if_c -{ - typedef std::conditional_t - < - IsConst, - Type const, - Type - > type; -}; - - }} // namespace boost::geometry #endif // BOOST_GEOMETRY_STRATEGIES_DETAIL_HPP diff --git a/include/boost/geometry/util/type_traits_std.hpp b/include/boost/geometry/util/type_traits_std.hpp new file mode 100644 index 000000000..92db872ef --- /dev/null +++ b/include/boost/geometry/util/type_traits_std.hpp @@ -0,0 +1,188 @@ +// Boost.Geometry + +// Copyright (c) 2020, 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_UTIL_TYPE_TRAITS_STD_HPP +#define BOOST_GEOMETRY_UTIL_TYPE_TRAITS_STD_HPP + + +#include +#include + + +namespace boost { namespace geometry +{ + + +#ifndef DOXYGEN_NO_DETAIL +namespace detail +{ + + +// C++17 +template +using bool_constant = std::integral_constant; + +// non-standard +template +using int_constant = std::integral_constant; + +// non-standard +template +using index_constant = std::integral_constant; + +// non-standard +template +using size_constant = std::integral_constant; + + +// C++17 +template +struct conjunction + : std::true_type +{}; +template +struct conjunction + : Trait +{}; +template +struct conjunction + : std::conditional_t, Trait> +{}; + +// C++17 +template +struct disjunction + : std::false_type +{}; +template +struct disjunction + : Trait +{}; +template +struct disjunction + : std::conditional_t> +{}; + +// C++17 +template +struct negation + : bool_constant +{}; + + +// non-standard +/* +template +using and_ = conjunction; + +template +using or_ = disjunction; + +template +using not_ = negation; +*/ + + +// C++20 +template +struct remove_cvref +{ + using type = std::remove_cv_t>; +}; + +template +using remove_cvref_t = typename remove_cvref::type; + +// non-standard +template +struct remove_cref +{ + using type = std::remove_const_t>; +}; + +template +using remove_cref_t = typename remove_cref::type; + +// non-standard +template +struct remove_cptrref +{ + using type = std::remove_const_t + < + std::remove_pointer_t> + >; +}; + +template +using remove_cptrref_t = typename remove_cptrref::type; + + +// non-standard +template +struct transcribe_const +{ + using type = std::conditional_t + < + std::is_const>::value, + std::add_const_t, + To + >; +}; + +template +using transcribe_const_t = typename transcribe_const::type; + + +} // namespace detail +#endif // DOXYGEN_NO_DETAIL + + +// Deprecated utilities, defined for backward compatibility but might be +// removed in the future. + + +/*! + \brief Meta-function to define a const or non const type + \ingroup utility + \details If the boolean template parameter is true, the type parameter + will be defined as const, otherwise it will be defined as it was. + This meta-function is used to have one implementation for both + const and non const references + \note This traits class is completely independant from Boost.Geometry + and might be a separate addition to Boost + \note Used in a.o. for_each, interior_rings, exterior_ring + \par Example + \code + void foo(typename add_const_if_c::type& point) + \endcode +*/ +template +struct add_const_if_c +{ + typedef std::conditional_t + < + IsConst, + Type const, + Type + > type; +}; + + +namespace util +{ + +template +using bare_type = geometry::detail::remove_cptrref; + +} // namespace util + + +}} // namespace boost::geometry + +#endif // BOOST_GEOMETRY_UTIL_TYPE_TRAITS_STD_HPP