Я читал другой вопрос, и это заставило меня задуматься.Часто стандарт определяет функции, которые имеют параметры по умолчанию в своих описаниях.Позволяет ли стандарт вместо этого записывать их как перегрузки?
Например, стандарт говорит, что std::basic_string::copy
имеет следующее объявление:
size_type copy(Ch* p, size_type n, size_type pos = 0) const;
Может ли соответствующая реализация стандартной библиотеки реализовать этовместо двух функций, подобных этой?
size_type copy(Ch* p, size_type n, size_type pos) const;
size_type copy(Ch* p, size_type n) const;
В этом примере вторая версия может пропустить тест if(pos > size()) { throw out_of_range(); }
, необходимый в первой.Микрооптимизация, но все же вы видите смысл примера.