Информация об изменениях

Сообщение 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

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

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". Особенно выхлоп компилера.