2#ifndef RIVET_TypeTraits_HH
3#define RIVET_TypeTraits_HH
20 template <
typename ...>
33 struct TypeTraits<const U&> {
34 typedef RefType ArgType;
38 struct TypeTraits<const U*> {
39 typedef PtrType ArgType;
45 template <
typename T,
typename=
void>
46 struct Derefable : std::false_type {};
49 struct Derefable<T, SFINAE::void_t< decltype(*std::declval<T>())> > :
std::true_type {};
62 template <
typename T,
typename=
void>
63 struct HasXYZ : std::false_type {};
65 struct HasXYZ<T, SFINAE::void_t< decltype(std::declval<T>().x() + std::declval<T>().y() + std::declval<T>().z())> > :
std::true_type {};
68 template <
typename T,
typename=
void>
69 struct HasXYZT : std::false_type {};
71 struct HasXYZT<T, SFINAE::void_t< decltype(std::declval<T>().x() + std::declval<T>().y() + std::declval<T>().z() + std::declval<T>().t())> > :
std::true_type {};
Definition MC_Cent_pPb.hh:10