Re[4]: MSVC: A non-const reference may only be bound to an l
От: Sm0ke Россия ksi
Дата: 26.07.23 13:01
Оценка:
Здравствуйте, Videoman, Вы писали:

V>Нет. Вот что думает на это счёт стандартная библиотека:
V>template<class T> 
V>const T& max(const T& a, const T& b)
V>{
V>    return (a < b) ? b : a;
V>}
V>


Чтож, читаем notes по вашей ссылке:

Notes
Capturing the result of std::max by reference produces a dangling reference if one of the parameters is a temporary and that parameter is returned:

int n = 1;
const int& r = std::max(n — 1, n + 1); // r is dangling


При передаче в эту функцию временного объекта и при привязке по const ref результата будет провисшая ссылка на уже разрушенный объект.
Так что будьте осторожней со стандартным максом
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.