ord_index_args.hpp
Go to the documentation of this file.
1 /* Copyright 2003-2013 Joaquin M Lopez Munoz.
2  * Distributed under the Boost Software License, Version 1.0.
3  * (See accompanying file LICENSE_1_0.txt or copy at
4  * http://www.boost.org/LICENSE_1_0.txt)
5  *
6  * See http://www.boost.org/libs/multi_index for library home page.
7  */
8 
9 #ifndef BOOST_MULTI_INDEX_DETAIL_ORD_INDEX_ARGS_HPP
10 #define BOOST_MULTI_INDEX_DETAIL_ORD_INDEX_ARGS_HPP
11 
12 #if defined(_MSC_VER)
13 #pragma once
14 #endif
15 
16 #include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */
17 #include <boost/mpl/aux_/na.hpp>
18 #include <boost/mpl/eval_if.hpp>
19 #include <boost/mpl/identity.hpp>
20 #include <boost/mpl/if.hpp>
22 #include <boost/static_assert.hpp>
24 #include <functional>
25 
26 namespace boost{
27 
28 namespace multi_index{
29 
30 namespace detail{
31 
32 /* Oredered index specifiers can be instantiated in two forms:
33  *
34  * (ordered_unique|ordered_non_unique)<
35  * KeyFromValue,Compare=std::less<KeyFromValue::result_type> >
36  * (ordered_unique|ordered_non_unique)<
37  * TagList,KeyFromValue,Compare=std::less<KeyFromValue::result_type> >
38  *
39  * index_args implements the machinery to accept this argument-dependent
40  * polymorphism.
41  */
42 
43 template<typename KeyFromValue>
45 {
46  typedef std::less<typename KeyFromValue::result_type> type;
47 };
48 
49 template<typename Arg1,typename Arg2,typename Arg3>
51 {
53 
54  typedef typename mpl::if_<
55  full_form,
56  Arg1,
58  typedef typename mpl::if_<
59  full_form,
60  Arg2,
62  typedef typename mpl::if_<
63  full_form,
64  Arg3,
66  typedef typename mpl::eval_if<
71 
75 };
76 
77 } /* namespace multi_index::detail */
78 
79 } /* namespace multi_index */
80 
81 } /* namespace boost */
82 
83 #endif
boost::multi_index::detail::index_args_default_compare
Definition: ord_index_args.hpp:44
boost::mpl::is_na
Definition: na.hpp:25
identity.hpp
config.hpp
static_assert.hpp
tag.hpp
boost::type
Definition: type.hpp:14
boost::multi_index::detail::is_tag
Definition: multi_index/tag.hpp:55
boost
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
boost::multi_index::detail::ordered_index_args::key_from_value_type
mpl::if_< full_form, Arg2, Arg1 >::type key_from_value_type
Definition: ord_index_args.hpp:61
na.hpp
boost::mpl::identity
Definition: mpl/identity.hpp:25
is_same.hpp
boost::multi_index::detail::ordered_index_args::tag_list_type
mpl::if_< full_form, Arg1, tag< > >::type tag_list_type
Definition: ord_index_args.hpp:57
eval_if.hpp
boost::multi_index::detail::ordered_index_args::compare_type
mpl::eval_if< mpl::is_na< supplied_compare_type >, index_args_default_compare< key_from_value_type >, mpl::identity< supplied_compare_type > >::type compare_type
Definition: ord_index_args.hpp:70
boost::multi_index::tag
Definition: multi_index/tag.hpp:68
boost::multi_index::detail::ordered_index_args::supplied_compare_type
mpl::if_< full_form, Arg3, Arg2 >::type supplied_compare_type
Definition: ord_index_args.hpp:65
boost::mpl::eval_if
Definition: gcc/basic_bind.hpp:408
boost::multi_index::detail::ordered_index_args::full_form
is_tag< Arg1 > full_form
Definition: ord_index_args.hpp:52
boost::mpl::if_
Definition: dmc/basic_bind.hpp:374
boost::multi_index::detail::index_args_default_compare::type
std::less< typename KeyFromValue::result_type > type
Definition: ord_index_args.hpp:46
if.hpp
boost::multi_index::detail::ordered_index_args
Definition: ord_index_args.hpp:50
boost::multi_index::detail::ordered_index_args::BOOST_STATIC_ASSERT
BOOST_STATIC_ASSERT(is_tag< tag_list_type >::value)


sick_visionary_ros
Author(s): SICK AG TechSupport 3D Snapshot
autogenerated on Thu Feb 8 2024 03:45:34