sick_visionary_cpp_shared
3pp
boost
mpl
iter_fold_if.hpp
Go to the documentation of this file.
1
2
#ifndef BOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED
3
#define BOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED
4
5
// Copyright Aleksey Gurtovoy 2003-2004
6
// Copyright Eric Friedman 2003
7
//
8
// Distributed under the Boost Software License, Version 1.0.
9
// (See accompanying file LICENSE_1_0.txt or copy at
10
// http://www.boost.org/LICENSE_1_0.txt)
11
//
12
// See http://www.boost.org/libs/mpl for documentation.
13
14
// $Id: iter_fold_if.hpp 13472 2017-08-22 07:53:44Z richean $
15
// $Date: 2017-08-22 09:53:44 +0200 (Di, 22 Aug 2017) $
16
// $Revision: 13472 $
17
18
#include <
boost/mpl/begin_end.hpp
>
19
#include <
boost/mpl/logical.hpp
>
20
#include <
boost/mpl/always.hpp
>
21
#include <
boost/mpl/eval_if.hpp
>
22
#include <
boost/mpl/if.hpp
>
23
#include <
boost/mpl/pair.hpp
>
24
#include <
boost/mpl/apply.hpp
>
25
#include <
boost/mpl/aux_/iter_fold_if_impl.hpp
>
26
#include <
boost/mpl/aux_/na_spec.hpp
>
27
#include <
boost/mpl/aux_/lambda_support.hpp
>
28
#include <
boost/mpl/aux_/config/forwarding.hpp
>
29
#include <
boost/mpl/aux_/config/workaround.hpp
>
30
31
#include <
boost/type_traits/is_same.hpp
>
32
33
namespace
boost
{
namespace
mpl {
34
35
namespace
aux {
36
37
template
<
typename
Predicate,
typename
LastIterator >
38
struct
iter_fold_if_pred
39
{
40
template
<
typename
State,
typename
Iterator >
struct
apply
41
#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
42
:
and_
<
43
not_< is_same<Iterator,LastIterator> >
44
, apply1<Predicate,Iterator>
45
>
46
{
47
#else
48
{
49
typedef
and_
<
50
not_< is_same<Iterator,LastIterator>
>
51
,
apply1<Predicate,Iterator>
52
>
type
;
53
#endif
54
};
55
};
56
57
}
// namespace aux
58
59
template
<
60
typename
BOOST_MPL_AUX_NA_PARAM
(Sequence)
61
,
typename
BOOST_MPL_AUX_NA_PARAM
(State)
62
,
typename
BOOST_MPL_AUX_NA_PARAM
(ForwardOp)
63
,
typename
BOOST_MPL_AUX_NA_PARAM
(ForwardPredicate)
64
,
typename
BOOST_MPL_AUX_NA_PARAM
(BackwardOp)
65
,
typename
BOOST_MPL_AUX_NA_PARAM
(BackwardPredicate)
66
>
67
struct
iter_fold_if
68
{
69
70
typedef
typename
begin<Sequence>::type
first_
;
71
typedef
typename
end<Sequence>::type
last_
;
72
73
typedef
typename
eval_if
<
74
is_na<BackwardPredicate>
75
,
if_< is_na<BackwardOp>
,
always<false_>
,
always<true_>
>
76
,
identity<BackwardPredicate>
77
>
::type
backward_pred_
;
78
79
// cwpro8 doesn't like 'cut-off' type here (use typedef instead)
80
#if !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) && !BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
81
struct
result_
:
82
#else
83
typedef
84
#endif
85
aux::iter_fold_if_impl
<
86
first_
87
, State
88
, ForwardOp
89
, protect< aux::iter_fold_if_pred< ForwardPredicate,last_ > >
90
, BackwardOp
91
, backward_pred_
92
>
93
#if !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003)) && !BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
94
{ };
95
#else
96
result_
;
97
#endif
98
99
public
:
100
101
typedef
pair
<
102
typename
result_::state
103
,
typename
result_::iterator
104
>
type
;
105
106
BOOST_MPL_AUX_LAMBDA_SUPPORT
(
107
6
108
,
iter_fold_if
109
, (Sequence,State,ForwardOp,ForwardPredicate,BackwardOp,BackwardPredicate)
110
)
111
};
112
113
BOOST_MPL_AUX_NA_SPEC
(6,
iter_fold_if
)
114
115
}}
116
117
#endif // BOOST_MPL_ITER_FOLD_IF_HPP_INCLUDED
always.hpp
boost::mpl::aux::iter_fold_if_pred::apply
Definition:
iter_fold_if.hpp:40
boost::mpl::is_na
Definition:
na.hpp:25
boost::mpl::aux::iter_fold_if_impl< first_, State, ForwardOp, protect< aux::iter_fold_if_pred< ForwardPredicate, last_ > >, BackwardOp, backward_pred_ >::iterator
backward_step4::iterator iterator
Definition:
preprocessed/bcc/iter_fold_if_impl.hpp:130
boost::mpl::iter_fold_if::first_
begin< Sequence >::type first_
Definition:
iter_fold_if.hpp:70
BOOST_MPL_AUX_NA_PARAM
#define BOOST_MPL_AUX_NA_PARAM(param)
Definition:
na_spec.hpp:152
boost::mpl::iter_fold_if::backward_pred_
eval_if< is_na< BackwardPredicate >, if_< is_na< BackwardOp >, always< false_ >, always< true_ > >, identity< BackwardPredicate > >::type backward_pred_
Definition:
iter_fold_if.hpp:77
boost::mpl::begin::type
begin_impl< tag_ >::template apply< Sequence >::type type
Definition:
begin_end.hpp:35
na_spec.hpp
BOOST_MPL_AUX_NA_SPEC
#define BOOST_MPL_AUX_NA_SPEC(i, name)
Definition:
na_spec.hpp:161
boost::mpl::iter_fold_if::result_
Definition:
iter_fold_if.hpp:81
boost
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
boost::mpl::end::type
end_impl< tag_ >::template apply< Sequence >::type type
Definition:
begin_end.hpp:47
boost::mpl::aux::iter_fold_if_impl< first_, State, ForwardOp, protect< aux::iter_fold_if_pred< ForwardPredicate, last_ > >, BackwardOp, backward_pred_ >::state
backward_step0::state state
Definition:
preprocessed/bcc/iter_fold_if_impl.hpp:129
BOOST_MPL_AUX_LAMBDA_SUPPORT
#define BOOST_MPL_AUX_LAMBDA_SUPPORT(i, name, params)
Definition:
lambda_support.hpp:22
workaround.hpp
logical.hpp
boost::mpl::iter_fold_if::type
pair< typename result_::state, typename result_::iterator > type
Definition:
iter_fold_if.hpp:104
boost::mpl::identity
Definition:
mpl/identity.hpp:25
boost::mpl::aux::iter_fold_if_impl
Definition:
preprocessed/bcc/iter_fold_if_impl.hpp:96
boost::mpl::pair
Definition:
pair.hpp:28
apply.hpp
boost::mpl::iter_fold_if::last_
end< Sequence >::type last_
Definition:
iter_fold_if.hpp:71
is_same.hpp
forwarding.hpp
boost::mpl::always
Definition:
always.hpp:23
begin_end.hpp
iter_fold_if_impl.hpp
eval_if.hpp
boost::mpl::eval_if
Definition:
gcc/basic_bind.hpp:408
boost::mpl::apply1
Definition:
aux_/preprocessed/bcc/apply.hpp:42
boost::mpl::if_
Definition:
dmc/basic_bind.hpp:374
bool_< false >::type
bool_ type
Definition:
mpl/bool.hpp:27
boost::mpl::aux::iter_fold_if_pred
Definition:
iter_fold_if.hpp:38
boost::mpl::not_
Definition:
not.hpp:39
pair.hpp
lambda_support.hpp
boost::mpl::and_
Definition:
mpl/aux_/preprocessed/bcc/and.hpp:48
if.hpp
boost::mpl::iter_fold_if
Definition:
iter_fold_if.hpp:67
sick_visionary_ros
Author(s): SICK AG TechSupport 3D Snapshot
autogenerated on Thu Feb 8 2024 03:40:21