В C ++ даны альтернативы:
void fun(int arg1, int arg2opt = 0);
// vs.
void fun(int arg1, int arg2);
void fun(int arg1) {
fun(arg1, 0);
}
Существуют ли какие-либо различия для пользовательского кода, желающего использовать эту функцию, то есть, учитывая любую кодовую базу, какие конструкции кода будут ломаться (во время компиляции или во время выполнения), когда я должен был изменить первое определение на второе? (Разрешение перегрузки? Поиск имени? Назначение fun
к указателю на функцию? Использование в шаблонах (std::function
)? …)
Или это будет то же самое семантически? (вот некоторые детали что я знаю и которые не имеют отношения к этому вопросу)
Я думаю эта ссылка полезно для запуска, но вы назвали template
Я испытал в template
, Если ваша программа продуктивна и у вас нет времени на изучение шаблонов, остановитесь и изучите шаблоны в отпуске. У нее нет быстрых ссылок, и ее ошибки немного отличаются от OOD/P
, но если у вас есть время, начните.
Других решений пока нет …