14 #ifndef BOOST_MOVE_DETAIL_META_UTILS_HPP 15 #define BOOST_MOVE_DETAIL_META_UTILS_HPP 17 #ifndef BOOST_CONFIG_HPP 21 #if defined(BOOST_HAS_PRAGMA_ONCE) 32 template <
class T>
class rv;
34 namespace move_detail {
61 #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 107 #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 162 static char is_class_or_union_tester(
void(U::*)(
void));
164 static twochar is_class_or_union_tester(...);
165 static const bool value =
sizeof(is_class_or_union_tester<T>(0)) ==
sizeof(char);
176 inline operator T& ()
const {
return v_; }
185 static inline T *
f( T &
v,
long )
187 return reinterpret_cast<T*
>(
188 &
const_cast<char&
>(
reinterpret_cast<const volatile char &
>(
v)));
191 static inline T *
f( T *
v,
int )
209 template <
class U>
static two test(...);
210 template <
class U>
static char test(
typename U::pointer* = 0);
217 #if defined(_MSC_VER) && (_MSC_VER >= 1400) 221 template <
class T,
class U>
224 static const bool value = __is_convertible_to(T, U);
229 template <
class T,
class U>
236 static true_t dispatch(U);
237 static t_reference trigger();
239 static const bool value =
sizeof(dispatch(trigger())) ==
sizeof(true_t);
256 {
static const bool value =
false; };
260 {
static const bool value =
false; };
270 {
static const bool value =
false; };
274 {
static const bool value =
true; };
278 {
static const bool value =
true; };
284 {
static const bool value =
false; };
286 #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 290 {
static const bool value =
true; };
292 #else // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 296 {
static const bool value =
true; };
300 {
static const bool value =
true; };
302 #endif // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 304 #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 310 #else // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 312 namespace detail_add_rvalue_reference
317 struct add_rvalue_reference_impl {
typedef T
type; };
319 template<
class T,
bool emulation>
320 struct add_rvalue_reference_impl< T, emulation, true > {
typedef T &
type; };
322 template<
class T,
bool rv >
323 struct add_rvalue_reference_impl< T, true, rv > { typedef ::boost::rv<T>&
type; };
328 : detail_add_rvalue_reference::add_rvalue_reference_impl<T>
333 {
typedef T &
type; };
335 #endif // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 339 #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 341 #else // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 350 #endif // #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES 367 #endif //#ifndef BOOST_MOVE_DETAIL_META_UTILS_HPP
GLenum GLsizei const void * pointer
typedef void(APIENTRY *GLDEBUGPROC)(GLenum source
BOOST_MOVE_USE_STANDARD_LIBRARY_MOVE.
add_lvalue_reference< T >::type t_reference
remove_reference< T >::type t_unreferenced
add_lvalue_reference< t_unreferenced_const >::type type
add_const< t_unreferenced >::type t_unreferenced_const