1 #ifndef art_Framework_Principal_SummedValue_h 2 #define art_Framework_Principal_SummedValue_h 51 #include "cetlib_except/demangle.h" 63 "art error: SummedValue<T>'s only support types that can be aggregated.\n" 64 " Please contact artists@fnal.gov.\n");
90 auto const& newRS = h.provenance()->rangeOfValidity();
97 "SummedValue<T>::update"}
98 <<
"\nThe following ranges corresponding to the type:\n" 99 <<
" '" << cet::demangle_symbol(
typeid(
T).
name()) <<
"'" 101 <<
" vs. " << newRS.run() <<
") and cannot be aggregated.\n" 102 <<
"Please contact artists@fnal.gov.\n";
115 "SummedValue<T>::update"}
116 <<
"\nThe following ranges corresponding to the type:\n" 117 <<
" '" << cet::demangle_symbol(
typeid(
T).
name()) <<
"'" 118 <<
"\ncannot be aggregated\n" 120 << newRS <<
"\nPlease contact artists@fnal.gov.\n";
132 template <
typename T>
133 template <
typename H>
138 cet::demangle_symbol(
typeid(*this).name()) +
139 " from an invalid handle."};
144 template <
typename T>
145 template <
typename H>
150 cet::demangle_symbol(
typeid(*this).name()) +
151 " from an invalid handle.\n"};
156 template <
typename T>
164 template <
typename T>
171 template <
typename T>
178 template <
typename T>
185 template <
class T,
class U>
192 template <
class T,
class U>
199 template <
class T,
class U>
RangeSet rangeOfValidity_
std::enable_if_t< detail::is_handle< H >::value > update(H const &h)
void swap(Handle< T > &a, Handle< T > &b)
static void aggregate(T &, T const &)
std::enable_if_t< detail::are_handles< T, U >::value, bool > disjoint_ranges(T const &a, U const &b)
RangeSet const & rangeOfValidity() const
void throw_if_invalid(std::string const &msg, T const &...t)
void update_impl(H const &h, T const &t)
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
std::enable_if_t< detail::are_handles< T, U >::value, bool > overlapping_ranges(T const &a, U const &b)
static RangeSet invalid()
std::enable_if_t< detail::are_handles< T, U >::value, bool > same_ranges(T const &a, U const &b)
RangeSet & merge(RangeSet const &other)