16 #include "CLHEP/Utility/noncopyable.h" 17 #include "CLHEP/Utility/type_traits.h" 22 using namespace CLHEP;
33 UDT& operator=(
const UDT&);
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;}
178 virtual void foo() = 0;
179 virtual void foo2() = 0;
185 virtual void foo() = 0;
186 virtual void foo2() = 0;
190 {
virtual void foo3() = 0; };
192 struct incomplete_type;
197 virtual void method();
204 {
virtual void method(); };
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)) bool operator==(const empty_UDT &) const
bool operator==(const empty_POD_UDT &) const
int(UDT::* cmf)(int) const
bool operator==(const nothrow_assign_UDT &) const
#define has_nonenum_type(Type)
nothrow_copy_UDT & operator=(const nothrow_copy_UDT &)
bool operator==(const nothrow_construct_UDT &) const
bool operator==(const nothrow_copy_UDT &) const
#define has_nonvoid_type(Type)
void foo2_t(int &, double)
empty_UDT(const empty_UDT &)
nothrow_construct_UDT & operator=(const nothrow_construct_UDT &)
#define has_array_type(Type)
nothrow_assign_UDT & operator=(const nothrow_assign_UDT &)
#define has_enum_type(Type)
void foo3_t(int &, bool, int, int)
empty_UDT & operator=(const empty_UDT &)
void foo4_t(int, bool, int *, int[], int, int, int, int, int)
int(UDT::* mf4)(int, float)
#define has_nonptr_type(Type)
#define has_nonintegral_type(Type)
#define has_ptr_type(Type)
#define has_mbrfctnptr_type(Type)
#define has_nonfloating_type(Type)
#define has_integral_type(Type)
#define has_void_type(Type)
#define has_nonmbrfctnptr_type(Type)
#define has_nonarray_type(Type)
#define has_floating_type(Type)
#define has_mbrobjptr_type(Type)
#define has_nonmbrobjptr_type(Type)