// 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.
#define BOOST_GEOMETRY_CORE_EXTERIOR_RING_HPP
-#include <boost/mpl/assert.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/remove_const.hpp>
-
+#include <type_traits>
#include <boost/geometry/core/ring_type.hpp>
+#include <boost/geometry/core/static_assert.hpp>
#include <boost/geometry/core/tag.hpp>
#include <boost/geometry/core/tags.hpp>
-#include <boost/geometry/util/add_const_if_c.hpp>
namespace boost { namespace geometry
template <typename Polygon>
struct exterior_ring
{
- BOOST_MPL_ASSERT_MSG
- (
- false, NOT_IMPLEMENTED_FOR_THIS_POLYGON_TYPE
- , (types<Polygon>)
- );
+ BOOST_GEOMETRY_STATIC_ASSERT_FALSE(
+ "Not implemented for this Polygon type.",
+ Polygon);
};
template <typename Tag, typename Geometry>
struct exterior_ring
{
- BOOST_MPL_ASSERT_MSG
- (
- false, NOT_IMPLEMENTED_FOR_THIS_GEOMETRY_TYPE
- , (types<Geometry>)
- );
+ BOOST_GEOMETRY_STATIC_ASSERT_FALSE(
+ "Not implemented for this Geometry type.",
+ Tag, Geometry);
};
{
static
typename geometry::ring_return_type<Polygon>::type
- apply(typename add_const_if_c
- <
- boost::is_const<Polygon>::type::value,
- Polygon
- >::type& polygon)
+ apply(Polygon& polygon)
{
return traits::exterior_ring
<
- typename boost::remove_const<Polygon>::type
+ typename std::remove_const<Polygon>::type
>::get(polygon);
}
};