Вот упрощение 6 прототипов из std::tr1::regex_match
regex_match(iterator1, iterator2, match_results&, regex&, flags = some_default);
regex_match(iterator1, iterator2, regex&, flags = some_default);
regex_match(Elem*, match_results&, regex&, flags = some_default);
regex_match(Elem*, regex&, flags = some_default);
regex_match(string, match_results&, regex&, flags = some_default);
regex_match(string, regex&, flags = some_default);
Интересно, почему прототипы были разработаны таким образом:
- Похоже, что и
match_results
, и flags
являются необязательными, но вы должны предоставить один из них. Почему бы не сместить аргумент match_results &
рядом с аргументом flags
?
- Аргумент
regex &
может показаться более интуитивным, чем основной аргумент.
Может ли кто-нибудь объяснить обоснование этих прототипов?
Спасибо.