Сообщение Re[2]: Reference binding in C++23 - bug of gcc? от 31.01.2025 21:08
Изменено 31.01.2025 21:10 rg45
Re[2]: Reference binding in C++23 - bug of gcc?
Здравствуйте, Великий Реверс, Вы писали:
ВР>хз может что то здесь
ВР>как раз в С++23 изменили
ВР>https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2266r3.html
А вот это похоже на то место, откуда растут ноги. Вот такой пример также не компилится:
http://coliru.stacked-crooked.com/a/dac55f17f3fcc212
Блин, но это же прямое противоречие к "named rvalue references are treated as lvalues". Особенно выхлоп компилера.
ВР>хз может что то здесь
ВР>как раз в С++23 изменили
ВР>https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2266r3.html
А вот это похоже на то место, откуда растут ноги. Вот такой пример также не компилится:
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". Особенно выхлоп компилера.
Re[2]: Reference binding in C++23 - bug of gcc?
Здравствуйте, Великий Реверс, Вы писали:
ВР>хз может что то здесь
ВР>как раз в С++23 изменили
ВР>https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2266r3.html
А вот это похоже на то место, откуда растут ноги. Похоже, всё сводится к выражению под return. Вот такой пример также не компилится:
http://coliru.stacked-crooked.com/a/dac55f17f3fcc212
Блин, но это же прямое противоречие к "named rvalue references are treated as lvalues". Особенно выхлоп компилера.
ВР>хз может что то здесь
ВР>как раз в С++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". Особенно выхлоп компилера.