MSVC: A non-const reference may only be bound to an lvalue
От: пффф  
Дата: 23.07.23 06:48
Оценка: :))
Привет

Есть код:

typedef std::set<unsigned>  UnsignedSet;

inline
UnsignedSet& operator<<(UnsignedSet &us, unsigned u)
{
    us.insert(u);
    return us;
}

void serializeUnsignedSet(const UnsignedSet &us);

//...

serializeUnsignedSet(UnsignedSet() << 2u << 10u); //!!!


Выдаёт при /Wall:
Non-standart extention used: 'argument': conversion from 'UnsignedSet' to 'UnsignedSet&'
A non-const reference may only be bound to an lvalue


Как я понимаю, ему не нравится то, что operator<< получает временный объект по ссылке?

Как это всё правильно переписать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.