Go to the documentation of this file.
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))
int(UDT::* cmf)(int) const
bool operator==(const empty_POD_UDT &) const
#define has_mbrobjptr_type(Type)
void foo2_t(int &, double)
#define has_nonvoid_type(Type)
bool operator==(const empty_UDT &) const
const typedef r_type cr_type
empty_UDT(const empty_UDT &)
nothrow_assign_UDT & operator=(const nothrow_assign_UDT &)
#define has_nonenum_type(Type)
#define has_enum_type(Type)
const typedef doubleUDT::* mp2
void foo4_t(int, bool, int *, int[], int, int, int, int, int)
nothrow_construct_UDT & operator=(const nothrow_construct_UDT &)
void foo3_t(int &, bool, int, int)
#define has_array_type(Type)
We should separate methods that force the load of the Rotation class For practical that implies that methods like and that as in the ThreeVector class we separate the cc files Also again we have the rotation methods returning HepLorentzVector &rather than void
empty_UDT & operator=(const empty_UDT &)
nothrow_copy_UDT & operator=(const nothrow_copy_UDT &)
#define has_nonfloating_type(Type)
#define has_mbrfctnptr_type(Type)
bool operator==(const nothrow_assign_UDT &) const
#define has_nonintegral_type(Type)
#define has_nonarray_type(Type)
#define has_nonptr_type(Type)
bool operator==(const nothrow_construct_UDT &) const
#define has_ptr_type(Type)
int(UDT::* mf4)(int, float)
any side effects of that construction would occur twice The semantics of throw x
#define has_nonmbrfctnptr_type(Type)
#define has_nonmbrobjptr_type(Type)
bool operator==(const nothrow_copy_UDT &) const
#define has_integral_type(Type)
#define has_floating_type(Type)
#define has_void_type(Type)