16 #include "CLHEP/Utility/noncopyable.h"
17 #include "CLHEP/Utility/type_traits.h"
22 using namespace CLHEP;
43 typedef int(*
f2)(int);
44 typedef int(*
f3)(int, bool);
61 #if ! defined(_MSC_VER)
153 {
operator void*(){
return this;} };
157 operator int*(){
return &i;}
192 struct incomplete_type;
216 typedef void foo3_t(
int&,
bool,
int,
int);
217 typedef void foo4_t(
int,
bool,
int*,
int[],
int,
int,
int,
int,
int);
256 {
operator char*()
const; };
264 #define claim_void(Type) (is_void<Type>::value)
265 #define has_void_type(Type) assert(claim_void(Type))
266 #define has_nonvoid_type(Type) assert(!claim_void(Type))
283 #define claim_integral(Type) (is_integral<Type>::value)
284 #define has_integral_type(Type) assert(claim_integral(Type))
285 #define has_nonintegral_type(Type) assert(!claim_integral(Type))
349 #define claim_floating(Type) (is_floating_point<Type>::value)
350 #define has_floating_type(Type) assert(claim_floating(Type))
351 #define has_nonfloating_type(Type) assert(!claim_floating(Type))
386 #define claim_array(Type) (is_array<Type>::value)
387 #define has_array_type(Type) assert(claim_array(Type))
388 #define has_nonarray_type(Type) assert(!claim_array(Type))
411 #define claim_ptr(Type) (is_pointer<Type>::value)
412 #define has_ptr_type(Type) assert(claim_ptr(Type))
413 #define has_nonptr_type(Type) assert(!claim_ptr(Type))
448 #define claim_lref(Type) (is_lvalue_reference<Type>::value)
449 #define has_lref_type(Type) assert(claim_lref(Type))
450 #define has_nonlref_type(Type) assert(!claim_lref(Type))
452 #define claim_ref(Type) (is_reference<Type>::value)
453 #define has_ref_type(Type) assert(claim_ref(Type))
454 #define has_nonref_type(Type) assert(!claim_ref(Type))
456 #define lref(Type) has_lref_type(Type); has_ref_type(Type);
457 #define nonref(Type) has_nonlref_type(Type); has_nonref_type(Type);
461 lref(
volatile int &);
462 lref(
const volatile int &);
464 #if ! defined(_MSC_VER)
477 nonref(
const volatile int [2]);
484 #define claim_mbrobjptr(Type) (is_member_object_pointer<Type>::value)
485 #define has_mbrobjptr_type(Type) assert(claim_mbrobjptr(Type))
486 #define has_nonmbrobjptr_type(Type) assert(!claim_mbrobjptr(Type))
503 #define claim_mbrfctnptr(Type) (is_member_function_pointer<Type>::value)
504 #define has_mbrfctnptr_type(Type) assert(claim_mbrfctnptr(Type))
505 #define has_nonmbrfctnptr_type(Type) assert(!claim_mbrfctnptr(Type))
526 #define claim_enum(Type) (is_enum<Type>::value)
527 #define has_enum_type(Type) assert(claim_enum(Type))
528 #define has_nonenum_type(Type) assert(!claim_enum(Type))
UDT & operator=(const UDT &)
bool operator==(const empty_POD_UDT &) const
bool operator==(const empty_UDT &) const
empty_UDT(const empty_UDT &)
empty_UDT & operator=(const empty_UDT &)
nothrow_assign_UDT(const nothrow_assign_UDT &)
bool operator==(const nothrow_assign_UDT &) const
nothrow_assign_UDT & operator=(const nothrow_assign_UDT &)
bool operator==(const nothrow_construct_UDT &) const
nothrow_construct_UDT & operator=(const nothrow_construct_UDT &)
nothrow_copy_UDT & operator=(const nothrow_copy_UDT &)
bool operator==(const nothrow_copy_UDT &) const
nothrow_copy_UDT(const nothrow_copy_UDT &)
virtual ~polymorphic_base()
test_abc1 & operator=(const test_abc1 &)
test_abc1(const test_abc1 &)
trivial_except_assign & operator=(trivial_except_assign const &)
trivial_except_construct()
trivial_except_copy(trivial_except_copy const &)
~trivial_except_destroy()
virtual ~virtual_inherit6()
wrap & operator=(const wrap &)
#define has_nonintegral_type(Type)
#define has_enum_type(Type)
#define has_nonenum_type(Type)
#define has_integral_type(Type)
int(UDT::* cmf)(int) const
int(UDT::* mf4)(int, float)
#define has_array_type(Type)
#define has_nonarray_type(Type)
#define has_nonvoid_type(Type)
#define has_nonptr_type(Type)
#define has_void_type(Type)
void foo3_t(int &, bool, int, int)
#define has_nonmbrobjptr_type(Type)
void foo2_t(int &, double)
void foo4_t(int, bool, int *, int[], int, int, int, int, int)
#define has_nonmbrfctnptr_type(Type)
#define has_mbrfctnptr_type(Type)
#define has_ptr_type(Type)
#define has_floating_type(Type)
#define has_mbrobjptr_type(Type)
#define has_nonfloating_type(Type)