sick_visionary_cpp_shared
3pp
boost
mpl
aux_
push_back_impl.hpp
Go to the documentation of this file.
1
2
#ifndef BOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED
3
#define BOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED
4
5
// Copyright Aleksey Gurtovoy 2000-2008
6
//
7
// Distributed under the Boost Software License, Version 1.0.
8
// (See accompanying file LICENSE_1_0.txt or copy at
9
// http://www.boost.org/LICENSE_1_0.txt)
10
//
11
// See http://www.boost.org/libs/mpl for documentation.
12
13
// $Id: push_back_impl.hpp 13472 2017-08-22 07:53:44Z richean $
14
// $Date: 2017-08-22 09:53:44 +0200 (Di, 22 Aug 2017) $
15
// $Revision: 13472 $
16
17
#include <
boost/mpl/push_back_fwd.hpp
>
18
#include <
boost/mpl/assert.hpp
>
19
#include <
boost/mpl/aux_/has_type.hpp
>
20
#include <
boost/mpl/aux_/traits_lambda_spec.hpp
>
21
#include <
boost/mpl/aux_/config/forwarding.hpp
>
22
#include <
boost/mpl/aux_/config/static_constant.hpp
>
23
24
#include <
boost/type_traits/is_same.hpp
>
25
26
namespace
boost
{
namespace
mpl {
27
28
struct
has_push_back_arg
{};
29
30
// agurt 05/feb/04: no default implementation; the stub definition is needed
31
// to enable the default 'has_push_back' implementation below
32
template
<
typename
Tag >
33
struct
push_back_impl
34
{
35
template
<
typename
Sequence,
typename
T >
struct
apply
36
{
37
// should be instantiated only in the context of 'has_push_back_impl';
38
// if you've got an assert here, you are requesting a 'push_back'
39
// specialization that doesn't exist.
40
BOOST_MPL_ASSERT_MSG
(
41
(
boost::is_same< T, has_push_back_arg >::value
)
42
, REQUESTED_PUSH_BACK_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST
43
, ( Sequence )
44
);
45
};
46
};
47
48
template
<
typename
Tag >
49
struct
has_push_back_impl
50
{
51
template
<
typename
Seq >
struct
apply
52
#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
53
: aux::has_type< push_back< Seq, has_push_back_arg > >
54
{
55
#else
56
{
57
typedef
aux::has_type< push_back< Seq, has_push_back_arg > >
type
;
58
BOOST_STATIC_CONSTANT
(
bool
, value =
59
(aux::has_type<
push_back< Seq, has_push_back_arg >
>::value)
60
);
61
#endif
62
};
63
};
64
65
BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC
(2,
push_back_impl
)
66
BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC
(1,
has_push_back_impl
)
67
68
}}
69
70
#endif // BOOST_MPL_AUX_PUSH_BACK_IMPL_HPP_INCLUDED
BOOST_STATIC_CONSTANT
#define BOOST_STATIC_CONSTANT(type, assignment)
Definition:
suffix.hpp:394
boost::mpl::has_push_back_impl::apply
Definition:
push_back_impl.hpp:51
boost::type
Definition:
type.hpp:14
boost
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
has_type.hpp
boost::is_same
Definition:
type_traits/is_same.hpp:29
assert.hpp
boost::mpl::has_push_back_arg
Definition:
push_back_impl.hpp:28
is_same.hpp
boost::mpl::has_push_back_impl
Definition:
push_back_impl.hpp:49
forwarding.hpp
push_back_fwd.hpp
boost::mpl::push_back
Definition:
push_back.hpp:29
BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC
#define BOOST_MPL_ALGORITM_TRAITS_LAMBDA_SPEC(i, trait)
Definition:
traits_lambda_spec.hpp:58
boost::mpl::push_back_impl::apply
Definition:
push_back_impl.hpp:35
static_constant.hpp
traits_lambda_spec.hpp
boost::mpl::push_back_impl
Definition:
push_back_impl.hpp:33
boost::mpl::push_back_impl::apply::BOOST_MPL_ASSERT_MSG
BOOST_MPL_ASSERT_MSG((boost::is_same< T, has_push_back_arg >::value), REQUESTED_PUSH_BACK_SPECIALIZATION_FOR_SEQUENCE_DOES_NOT_EXIST,(Sequence))
sick_visionary_ros
Author(s): SICK AG TechSupport 3D Snapshot
autogenerated on Thu Feb 8 2024 03:45:47