Main Page
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
x
y
Variables
_
a
b
i
k
n
p
r
s
t
v
Typedefs
a
b
c
f
h
i
m
n
p
s
t
u
w
y
Enumerations
Enumerator
a
b
c
e
f
h
i
l
m
n
o
p
r
s
t
u
v
w
Classes
Class List
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
~
Variables
_
a
b
c
d
e
f
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
h
i
k
l
m
n
o
p
r
s
t
u
v
w
y
Enumerations
Enumerator
a
b
c
e
g
i
k
l
m
n
o
p
r
s
u
v
Related Functions
a
b
c
d
e
i
l
m
o
r
s
u
w
x
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
v
w
x
Functions
_
a
b
c
d
e
g
m
o
p
r
s
t
Variables
_
a
b
f
g
l
t
u
Typedefs
Enumerations
Enumerator
Macros
_
a
b
c
e
f
g
i
l
m
r
s
u
v
w
x
sick_visionary_cpp_shared
3pp
boost
type_traits
has_trivial_copy.hpp
Go to the documentation of this file.
1
2
// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
3
// Use, modification and distribution are subject to the Boost Software License,
4
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5
// http://www.boost.org/LICENSE_1_0.txt).
6
//
7
// See http://www.boost.org/libs/type_traits for most recent version including documentation.
8
9
#ifndef BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED
10
#define BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED
11
12
#include <cstddef>
// size_t
13
#include <
boost/type_traits/intrinsics.hpp
>
14
#include <
boost/type_traits/is_pod.hpp
>
15
#include <
boost/type_traits/is_reference.hpp
>
16
17
#if (defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 409)) || defined(BOOST_CLANG) || (defined(__SUNPRO_CC) && defined(BOOST_HAS_TRIVIAL_COPY))
18
#include <
boost/type_traits/is_copy_constructible.hpp
>
19
#define BOOST_TT_TRIVIAL_CONSTRUCT_FIX && is_copy_constructible<T>::value
20
#else
21
#define BOOST_TT_TRIVIAL_CONSTRUCT_FIX
22
#endif
23
24
#ifdef BOOST_INTEL
25
#include <
boost/type_traits/add_const.hpp
>
26
#include <
boost/type_traits/add_lvalue_reference.hpp
>
27
#endif
28
29
namespace
boost
{
30
31
template
<
typename
T>
struct
has_trivial_copy
32
:
public
integral_constant
<bool,
33
#ifdef BOOST_HAS_TRIVIAL_COPY
34
BOOST_HAS_TRIVIAL_COPY(T) BOOST_TT_TRIVIAL_CONSTRUCT_FIX
35
#else
36
::boost::is_pod<T>::value
37
#endif
38
>{};
39
// Arrays are not explicitly copyable:
40
template
<
typename
T, std::
size_t
N>
struct
has_trivial_copy
<
T
[N]> :
public
false_type
{};
41
template
<
typename
T>
struct
has_trivial_copy
<
T
[]> :
public
false_type
{};
42
// Are volatile types ever trivial? We don't really know, so assume not:
43
template
<
typename
T>
struct
has_trivial_copy
<
T
volatile> :
public
false_type
{};
44
45
template
<>
struct
has_trivial_copy
<void> :
public
false_type
{};
46
#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
47
template
<>
struct
has_trivial_copy
<void const> :
public
false_type
{};
48
template
<>
struct
has_trivial_copy
<void volatile> :
public
false_type
{};
49
template
<>
struct
has_trivial_copy
<void const volatile> :
public
false_type
{};
50
#endif
51
52
template
<
class
T>
struct
has_trivial_copy
<
T
&> :
public
false_type
{};
53
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
54
template
<
class
T>
struct
has_trivial_copy
<
T
&&> :
public
false_type
{};
55
#endif
56
57
template
<
class
T>
struct
has_trivial_copy_constructor
:
public
has_trivial_copy
<T>{};
58
59
#undef BOOST_TT_TRIVIAL_CONSTRUCT_FIX
60
61
}
// namespace boost
62
63
#endif // BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED
T
T
Definition:
mem_fn_cc.hpp:25
add_lvalue_reference.hpp
boost
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
is_pod.hpp
is_reference.hpp
intrinsics.hpp
is_copy_constructible.hpp
boost::has_trivial_copy_constructor
Definition:
has_trivial_copy.hpp:57
add_const.hpp
boost::has_trivial_copy
Definition:
has_trivial_copy.hpp:31
boost::integral_constant
Definition:
integral_constant.hpp:52
sick_visionary_ros
Author(s): SICK AG TechSupport 3D Snapshot
autogenerated on Thu Feb 8 2024 03:39:49