void initialize() { if(valid_) return; f_.reset(); valid_ = (begin_ != end_)? f_(begin_,end_,tok_):false; }
void initialize(Base& b){ if(b.valid_) return; func_.reset(); b.valid_ = (b.p_.first != b.p_.second)? func_(b.p_.first,b.p_.second,tok_):false; }