Является ли следующая функция безопасной в C++ 03 или C++ 11 или она отображает UB?Передача справки через функцию безопасна?
string const &min(string const &a, string const &b) {
return a < b ? a : b;
}
int main() {
cout << min("A", "B");
}
Допустимо ли возвращать ссылку на объект передается функции по ссылке?
Гарантировано, что временный объект
string
не был уничтожен слишком рано?Есть ли вероятность, что данная функция
min
может отображать UB (если это не в данном контексте)?Можно ли сделать эквивалентную, но безопасную функцию, избегая при этом копирования или перемещения?
Вам нужно работать со строковыми строками? Если вы абсолютно хотите избежать временных ситуаций, вы можете использовать '' std :: strcmp() ''. – bluescarni
@bluescarni: Не имеет значения, существует ли «string» или другой тип временного объекта. Вопрос должен быть общим. –