1 #ifndef DataFormats_Common_WrapperDetail_h 2 #define DataFormats_Common_WrapperDetail_h 12 #include <type_traits> 44 std::type_info
const&
operator()() {
return typeid(void); }
62 std::type_info
const&
operator()() {
return typeid(
typename T::member_type); }
66 std::type_info
const&
operator()() {
return typeid(void); }
79 template <
typename T,
typename Deleter>
84 template <
typename T,
typename Deleter>
92 template <
typename T,
bool (T::*)(T const&)>
106 template <
typename T>
110 template <
typename T>
116 template <
typename T>
118 bool operator()(
T& thisProduct,
T const& newProduct) {
return thisProduct.mergeProduct(newProduct); }
120 template <
typename T>
130 template <
typename T,
bool (T::*)(T const&) const>
132 template <
typename T>
134 template <
typename T>
137 template <
typename T>
144 template <
typename T>
148 template <
typename T>
154 template <
typename T>
156 bool operator()(
T const& thisProduct,
T const& newProduct) {
return thisProduct.isProductEqual(newProduct); }
158 template <
typename T>
168 template <
typename T,
void (T::*)(T&)>
170 template <
typename T>
172 template <
typename T>
175 template <
typename T>
182 template <
typename T>
186 template <
typename T>
192 template <
typename T>
194 void operator()(
T& thisProduct,
T& newProduct) { thisProduct.swap(newProduct); }
196 template <
typename T>
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)
static constexpr bool value
bool operator()(T &thisProduct, T const &newProduct)
void operator()(T &thisProduct, T &newProduct)
std::type_info const & operator()()
static yes_tag has_member_type(typename T::member_type *)
void operator()(T &, T &)
std::type_info const & operator()()
std::type_info const & operator()()
bool operator()(T const &thisProduct, T const &newProduct)
std::type_info const & operator()()
static yes_tag has_value_type(typename T::value_type *)
bool operator()(T &thisProduct, T const &newProduct)
static yes_tag has_swap(swap_function< T,&T::swap > *dummy)