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