Здравствуйте, 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);
}