sick_visionary_cpp_shared
3pp
boost
mpl
aux_
O1_size_impl.hpp
Go to the documentation of this file.
1
2
#ifndef BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
3
#define BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
4
5
// Copyright Aleksey Gurtovoy 2000-2004
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: O1_size_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/O1_size_fwd.hpp
>
18
#include <
boost/mpl/long.hpp
>
19
#include <
boost/mpl/if.hpp
>
20
#include <
boost/mpl/aux_/has_size.hpp
>
21
#include <
boost/mpl/aux_/config/forwarding.hpp
>
22
#include <
boost/mpl/aux_/config/static_constant.hpp
>
23
#include <
boost/mpl/aux_/config/msvc.hpp
>
24
#include <
boost/mpl/aux_/config/workaround.hpp
>
25
26
namespace
boost
{
namespace
mpl {
27
28
// default implementation - returns 'Sequence::size' if sequence has a 'size'
29
// member, and -1 otherwise; conrete sequences might override it by
30
// specializing either the 'O1_size_impl' or the primary 'O1_size' template
31
32
# if !BOOST_WORKAROUND(BOOST_MSVC, < 1300) \
33
&& !BOOST_WORKAROUND(__MWERKS__, BOOST_TESTED_AT(0x3003))
34
35
namespace
aux {
36
template
<
typename
Sequence >
struct
O1_size_impl
37
: Sequence::size
38
{
39
};
40
}
41
42
template
<
typename
Tag >
43
struct
O1_size_impl
44
{
45
template
<
typename
Sequence >
struct
apply
46
#if !defined(BOOST_MPL_CFG_NO_NESTED_FORWARDING)
47
:
if_
<
48
aux::has_size<Sequence>
49
, aux::O1_size_impl<Sequence>
50
, long_<-1>
51
>
::type
52
{
53
#else
54
{
55
typedef
typename
if_
<
56
aux::has_size<Sequence>
57
,
aux::O1_size_impl<Sequence>
58
,
long_
<-1>
59
>
::type
type
;
60
61
BOOST_STATIC_CONSTANT
(
long
, value =
62
(
if_
<
63
aux::has_size<Sequence>
64
,
aux::O1_size_impl<Sequence>
65
,
long_<-1>
66
>::type::value)
67
);
68
#endif
69
};
70
};
71
72
# else // BOOST_MSVC
73
74
template
<
typename
Tag >
75
struct
O1_size_impl
76
{
77
template
<
typename
Sequence >
struct
apply
78
:
long_
<-1>
79
{
80
};
81
};
82
83
# endif
84
85
}}
86
87
#endif // BOOST_MPL_O1_SIZE_IMPL_HPP_INCLUDED
long_
Definition:
long_fwd.hpp:22
BOOST_STATIC_CONSTANT
#define BOOST_STATIC_CONSTANT(type, assignment)
Definition:
suffix.hpp:394
boost::mpl::O1_size_impl
Definition:
O1_size_impl.hpp:43
boost::type
Definition:
type.hpp:14
boost
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
has_size.hpp
long.hpp
workaround.hpp
O1_size_fwd.hpp
msvc.hpp
forwarding.hpp
boost::mpl::O1_size_impl::apply
Definition:
O1_size_impl.hpp:45
boost::mpl::if_
Definition:
dmc/basic_bind.hpp:374
static_constant.hpp
if.hpp
boost::mpl::aux::O1_size_impl
Definition:
O1_size_impl.hpp:36
sick_visionary_ros
Author(s): SICK AG TechSupport 3D Snapshot
autogenerated on Thu Feb 8 2024 03:45:33