9 template <
class DerivedT>
17 virtual DerivedT&
withName(
const std::string& name) = 0;
26 template <
class StringContainerT>
30 return withNames(names.begin(), names.end());
33 template <
class IteratorT>
37 for (
auto it = begin; it != end; ++it)
41 return dynamic_cast<DerivedT&
>(*this);
virtual ~NameSelectorOps()=default
virtual DerivedT & withNamesStartingWith(const std::string &prefix)
DerivedT & withNames(const StringContainerT &names)
NameSelectorOps()=default
virtual DerivedT & withNames(const std::vector< std::string > &names)
virtual DerivedT & withNamesContaining(const std::string &substring)
DerivedT & withNames(IteratorT begin, IteratorT end)
virtual DerivedT & withNamesEndingWith(const std::string &suffix)
virtual DerivedT & withNamesMatching(const std::string ®ex)=0
virtual DerivedT & withName(const std::string &name)=0