1 #ifndef CASM_InputEnumerator
2 #define CASM_InputEnumerator
10 template <
typename ValueType,
bool IsConst>
11 class InputEnumeratorBase;
13 template <
typename ValueType,
bool IsConst>
14 class InputEnumIterator;
16 template <
typename ValueType,
bool IsConst = true>
40 return _enum().step();
51 virtual bool is_end()
const override {
56 std::unique_ptr<InputEnumIteratorBase>
clone()
const {
57 return std::unique_ptr<InputEnumIteratorBase>(this->
_clone());
89 template <
typename ValueType,
bool IsConst = true>
92 public boost::iterator_facade<InputEnumIterator<ValueType, IsConst>,
93 ValueType, std::input_iterator_tag,
94 CASM_TMP::ConstSwitch<IsConst, ValueType> &,
117 friend boost::iterator_core_access;
196 template <
typename ValueType,
bool IsConst = true>
241 template <
typename ValueType,
bool IsConst = true>
267 std::string
name()
const {
return ptr->name(); }
276 std::unique_ptr<InputEnumeratorBase<ValueType, IsConst> >
ptr;
EnumeratorBase::step_type step_type
std::string name() const
Uses enumerator class 'name' implementation.
jsonParser source() const
EnumeratorBase * _enum_ptr()
EnumeratorBase::step_type step_type
ValEnumerator< ValueType, IsConst >::reference reference
CASM_TMP::ConstSwitch< IsConst, ValueType > & reference
A 'cloneable_ptr' can be used in place of 'unique_ptr'.
Non-std smart pointer classes and functions.
std::unique_ptr< T > clone(const T &obj)