1 #ifndef DataFormats_Common_WrapperDetail_h
2 #define DataFormats_Common_WrapperDetail_h
14 template<
typename T>
class Ptr;
28 static bool const value =
sizeof(has_swap<T>(0)) ==
sizeof(
yes_tag);
34 thisProduct.swap(otherProduct);
39 thisProduct = otherProduct;
49 static const bool value =
sizeof(has_value_type<T>(
nullptr)) ==
sizeof(
yes_tag);
69 static const bool value =
sizeof(has_member_type<T>(
nullptr)) ==
sizeof(
yes_tag);
74 return typeid(
typename T::member_type);
103 sizeof(has_mergeProduct<T>(0)) ==
sizeof(
yes_tag);
120 return thisProduct.mergeProduct(newProduct);
139 sizeof(has_isProductEqual<T>(0)) ==
sizeof(
yes_tag);
156 return thisProduct.isProductEqual(newProduct);
std::type_info const & operator()()
std::type_info const & operator()()
static yes_tag has_isProductEqual(isProductEqual_function< T,&T::isProductEqual > *dummy)
Container::value_type value_type
static yes_tag has_mergeProduct(mergeProduct_function< T,&T::mergeProduct > *dummy)
bool operator()(T const &thisProduct, T const &newProduct)
bool operator()(T &thisProduct, T const &newProduct)
std::type_info const & operator()()
std::type_info const & operator()()
static yes_tag & has_member_type(typename T::member_type *)
bool operator()(T const &thisProduct, T const &newProduct)
std::type_info const & operator()()
void operator()(T &thisProduct, T &otherProduct)
static yes_tag & has_value_type(typename T::value_type *)
volatile std::atomic< bool > shutdown_flag false
void operator()(T &thisProduct, T &otherProduct)
bool operator()(T &thisProduct, T const &newProduct)
static yes_tag has_swap(swap_function< T,&T::swap > *dummy)