9 #ifndef BOOST_GEOMETRY_INDEX_INDEXABLE_HPP 
   10 #define BOOST_GEOMETRY_INDEX_INDEXABLE_HPP 
   12 #include <boost/mpl/assert.hpp> 
   14 #include <boost/geometry/index/detail/is_indexable.hpp> 
   16 namespace boost { 
namespace geometry { 
namespace index { 
namespace detail {
 
   28 template <typename Value, bool IsIndexable = is_indexable<Value>::value>
 
   32         (detail::is_indexable<Value>::value),
 
   33         NOT_VALID_INDEXABLE_TYPE,
 
   60 template <
typename Indexable, 
typename T2>
 
   64         (detail::is_indexable<Indexable>::value),
 
   65         NOT_VALID_INDEXABLE_TYPE,
 
   91 template <
typename Indexable, 
typename T1, 
typename T2, 
typename T3, 
typename T4,
 
   92           typename T5, 
typename T6, 
typename T7, 
typename T8, 
typename T9>
 
   93 struct indexable<boost::tuple<Indexable, T1, T2, T3, T4, T5, T6, T7, T8, T9>, false>
 
   95     typedef boost::tuple<Indexable, T1, T2, T3, T4, T5, T6, T7, T8, T9> value_type;
 
   98         (detail::is_indexable<Indexable>::value),
 
   99         NOT_VALID_INDEXABLE_TYPE,
 
  114         return boost::get<0>(v);
 
  120 #if !defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) 
  124 namespace boost { 
namespace geometry { 
namespace index { 
namespace detail {
 
  134 template <
typename Indexable, 
typename ...Args>
 
  137     typedef std::tuple<Indexable, Args...> value_type;
 
  139     BOOST_MPL_ASSERT_MSG(
 
  140         (detail::is_indexable<Indexable>::value),
 
  141         NOT_VALID_INDEXABLE_TYPE,
 
  156         return std::get<0>(v);
 
  162 #endif // !defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) 
  164 namespace boost { 
namespace geometry { 
namespace index {
 
  175 template <
typename Value>
 
  196 #endif // BOOST_GEOMETRY_INDEX_INDEXABLE_HPP 
The function object extracting Indexable from Value. 
Definition: indexable.hpp:176
Indexable const & result_type
The type of result returned by function object. 
Definition: indexable.hpp:70
boost::geometry::index::detail::indexable< boost::tuple< Indexable, T1, T2, T3, T4, T5, T6, T7, T8, T9 >, false >::operator() result_type operator()(value_type const &v) const 
Return indexable extracted from the value. 
Definition: indexable.hpp:112
The function object extracting Indexable from Value. 
Definition: indexable.hpp:29
detail::indexable< Value >::result_type result_type
The type of result returned by function object. It should be const Indexable reference. 
Definition: indexable.hpp:180
result_type operator()(Value const &v) const 
Return indexable extracted from the value. 
Definition: indexable.hpp:188
boost::geometry::index::detail::indexable< boost::tuple< Indexable, T1, T2, T3, T4, T5, T6, T7, T8, T9 >, false >::result_type Indexable const & result_type
The type of result returned by function object. 
Definition: indexable.hpp:104
Value const & result_type
The type of result returned by function object. 
Definition: indexable.hpp:38
result_type operator()(value_type const &v) const 
Return indexable extracted from the value. 
Definition: indexable.hpp:154
result_type operator()(Value const &v) const 
Return indexable extracted from the value. 
Definition: indexable.hpp:46
Indexable const & result_type
The type of result returned by function object. 
Definition: indexable.hpp:146
result_type operator()(std::pair< Indexable, T2 > const &v) const 
Return indexable extracted from the value. 
Definition: indexable.hpp:78