19 namespace TrackFindingCDC {
22 template<
class T,
class ATag = T>
27 using Super =
typename std::vector<T>::const_iterator;
47 explicit operator const T& ()
const
51 friend std::ostream&
operator<<(std::ostream& output,
const This& discreteValue)
52 {
return output << *discreteValue; }
60 {
return {{
This(values.front()),
This(values.back()) }}; }
Representation for a discrete position in an array of discrete positions.
DiscreteValue(const Super &iter)
Constructor from underlying iterator type.
DiscreteValue(T &value)
Constructor from a reference to the underlying type Care must be taken to feed it a reference that co...
static std::array< This, 2 > getRange(Array &values)
Extract the range from an array providing the discrete values.
friend std::ostream & operator<<(std::ostream &output, const This &discreteValue)
Output operator for debugging.
DiscreteValue()=default
Default constructor for to obtain a valid object in all contexts.
typename std::vector< T >::const_iterator Super
Type of the base class.
DiscreteValue< T, ATag > This
Type of this class.
std::vector< T > Array
The type of the array which contains the underlying values.
Abstract base class for different kinds of events.