48 template <
typename...
S>
51 validate_item_name(name);
52 _item_names.push_back(name);
54 (validate_item_name(
names), ...);
55 (_item_names.push_back(
names), ...);
58 template <
typename...
S>
61 validate_item_name(name);
62 _item_names.push_back(name);
64 (validate_item_name(
names), ...);
65 (_item_names.push_back(
names), ...);
75 operator std::vector<std::string>()
const;
77 const std::vector<std::string> &
vec()
const {
return _item_names; }
103 void validate_item_name(
const std::string &)
const;
105 std::vector<std::string> _item_names;
109bool operator==(
const LabeledAxisAccessor & a,
const LabeledAxisAccessor & b);
112bool operator!=(
const LabeledAxisAccessor & a,
const LabeledAxisAccessor & b);
118bool operator<(
const LabeledAxisAccessor & a,
const LabeledAxisAccessor & b);
124std::ostream &
operator<<(std::ostream & os,
const LabeledAxisAccessor & accessor);
The wrapper (decorator) for cross-referencing unresolved values at parse time.
Definition CrossRef.h:52
The accessor containing all the information needed to access an item in a LabeledAxis.
Definition LabeledAxisAccessor.h:44
LabeledAxisAccessor(const std::string &name, S &&... names)
Definition LabeledAxisAccessor.h:59
size_t size() const
Definition LabeledAxisAccessor.cxx:58
LabeledAxisAccessor append(const LabeledAxisAccessor &axis) const
Add a new item.
Definition LabeledAxisAccessor.cxx:72
LabeledAxisAccessor(const char *name, S &&... names)
Definition LabeledAxisAccessor.h:49
bool empty() const
Definition LabeledAxisAccessor.cxx:52
bool start_with(const LabeledAxisAccessor &axis) const
Check if this accessor begins with another accessor.
Definition LabeledAxisAccessor.cxx:103
LabeledAxisAccessor with_suffix(const std::string &suffix) const
Append a suffix to the item name.
Definition LabeledAxisAccessor.cxx:64
LabeledAxisAccessor slice(size_t n) const
Remove the leading n items from the labels.
Definition LabeledAxisAccessor.cxx:86
LabeledAxisAccessor()=default
LabeledAxisAccessor & operator=(const LabeledAxisAccessor &other)
Assignment operator.
Definition LabeledAxisAccessor.cxx:43
LabeledAxisAccessor on(const LabeledAxisAccessor &axis) const
Re-mount the LabeledAxisAccessor on an axis by the axis accessor.
Definition LabeledAxisAccessor.cxx:78
const std::vector< std::string > & vec() const
Definition LabeledAxisAccessor.h:77
Definition CrossRef.cxx:32
std::ostream & operator<<(std::ostream &os, const OptionCollection &p)
Definition OptionCollection.cxx:37
bool operator==(const LabeledAxis &a, const LabeledAxis &b)
Definition LabeledAxis.cxx:461
bool operator!=(const LabeledAxis &a, const LabeledAxis &b)
Definition LabeledAxis.cxx:467
bool operator<(const LabeledAxisAccessor &a, const LabeledAxisAccessor &b)
The (strict) smaller than operator is created so as to use LabeledAxisAccessor in sorted data structu...
Definition LabeledAxisAccessor.cxx:131