Является ли следующая функция безопасной в С++ 03 или С++ 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 (если это не в данном контексте)? -
Можно ли сделать эквивалентную, но безопасную функцию, все еще избегая копирование или перемещение?