Re[2]: MSVC: A non-const reference may only be bound to an lvalue
От: Sm0ke Россия ksi
Дата: 26.07.23 09:47
Оценка: +1
Здравствуйте, so5team, Вы писали:

S>Например, добавить еще одну перегрузку для operator<<

S>
S>inline
S>UnsignedSet&& operator<<(UnsignedSet &&us, unsigned u)
S>{
S>    us.insert(u);
S>    return std::move(us);
S>}//...
S>


Разве это не приведёт к dangling reference? Параметр функции всё равно что локальная переменная. Вы предлагаете вернуть ссылку на локальный объект.
Мне кажется тут надо по значению возвращать, оставив однако мув в return

inline
UnsignedSet operator << (UnsignedSet && us, unsigned u)
{
    us.insert(u);
    return std::move(us);
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.