5 :
MESet(_seed), current_(nullptr), sets_(), replCandidates_(_replCandidates) {
7 std::map<std::string, unsigned>
indices;
12 [&setReplacements, &replacements, &
indices,
this](
typename ReplCandidates::const_iterator &_rItr) {
14 replacements[_rItr->first] = _rItr->second[
index];
22 }
else if (setReplacements(_rItr))
25 if (
index != _rItr->second.size())
37 bool last(setReplacements(rItr));
48 :
MESet(_orig), current_(nullptr), sets_(_orig.sets_.
size(), nullptr), replCandidates_(_orig.replCandidates_) {
52 for (
unsigned iS(0); iS <
sets_.size(); ++iS) {
62 for (
unsigned iS(0); iS <
sets_.size(); ++iS)
67 for (
unsigned iS(0); iS <
sets_.size(); ++iS)
72 MESetMulti const *pRhs(dynamic_cast<MESetMulti const *>(&_rhs));
76 for (
unsigned iS(0); iS < pRhs->
sets_.size(); ++iS) {
98 for (
unsigned iS(0); iS <
sets_.size(); ++iS)
105 for (
unsigned iS(0); iS <
sets_.size(); ++iS)
114 for (
unsigned iS(0); iS <
sets_.size(); ++iS)
121 for (
unsigned iS(0); iS <
sets_.size(); ++iS)
126 for (
unsigned iS(0); iS <
sets_.size(); ++iS)
131 if (_iSet >=
sets_.size())
132 throw_(
"MESetMulti index out of range");
142 typename PathReplacements::const_iterator rItr(_replacements.find(cItr->first));
143 if (rItr == _replacements.end())
144 throw_(cItr->first +
" not given in the key for getIndex");
145 unsigned nC(cItr->second.size());
147 for (; iR != nC; ++iR)
148 if (rItr->second == cItr->second[iR])
151 throw_(rItr->second +
" not found in replacement candidates");