Здравствуйте, Великий Реверс, Вы писали:
ВР>хз может что то здесь
ВР>как раз в С++23 изменили
ВР>https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2266r3.html
А вот это похоже на то место, откуда растут ноги. Похоже, всё сводится к выражению под return. Вот такой пример также не компилится:
http://coliru.stacked-crooked.com/a/dac55f17f3fcc212
int& lvalue(int&& i)
{
int&& r = std::forward<int>(i);
return r; // error: cannot bind non-const lvalue reference of type 'int&' to an rvalue of type 'int'
}
Блин, но это же прямое противоречие к "named rvalue references are treated as lvalues". Особенно выхлоп компилера.