1 // Boost.Geometry (aka GGL, Generic Geometry Library) 2 3 // Copyright (c) 2014, Oracle and/or its affiliates. 4 5 // Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle 6 7 // Licensed under the Boost Software License version 1.0. 8 // http://www.boost.org/users/license.html 9 10 #ifndef BOOST_GEOMETRY_ITERATORS_DETAIL_POINT_ITERATOR_VALUE_TYPE_HPP 11 #define BOOST_GEOMETRY_ITERATORS_DETAIL_POINT_ITERATOR_VALUE_TYPE_HPP 12 13 #include <boost/type_traits/is_const.hpp> 14 #include <boost/mpl/if.hpp> 15 16 #include <boost/geometry/core/point_type.hpp> 17 18 19 namespace boost { namespace geometry 20 { 21 22 23 #ifndef DOXYGEN_NO_DETAIL 24 namespace detail { namespace point_iterator 25 { 26 27 28 template <typename Geometry> 29 struct value_type 30 { 31 typedef typename boost::mpl::if_c 32 < 33 !boost::is_const<Geometry>::type::value, 34 typename geometry::point_type<Geometry>::type, 35 typename geometry::point_type<Geometry>::type const 36 >::type type; 37 }; 38 39 40 }} // namespace detail::point_iterator 41 #endif // DOXYGEN_NO_DETAIL 42 43 44 }} // namespace boost::geometry 45 46 47 #endif // BOOST_GEOMETRY_ITERATORS_DETAIL_POINT_ITERATOR_VALUE_TYPE_HPP 48