Сообщение Re[4]: Reference binding in C++23 - bug of gcc? от 31.01.2025 21:51
Изменено 31.01.2025 21:52 rg45
Re[4]: Reference binding in C++23 - bug of gcc?
Здравствуйте, cserg, Вы писали:
C>Да, пункт 5.1 как раз ваш случай, код который ломается из-за изменений:
C>
А вообще, выглядит очень костыльно эта фича, с моей точки зрения. Никто не будет выписывать эти статик касты, а будут писать вот так:
Они ведь не собираются отменять правило "named rvalue references are treated as lvalues", как я понял. Так кого и от чего они спасают этими костылями? Лучше бы оставили более строгие и менее противоречивые правила.
C>Да, пункт 5.1 как раз ваш случай, код который ломается из-за изменений:
C>
C>std::istream& getline(std::istream&& in, ~~~) {
C> ~~~
C> return in;
C>}
C>// was changed to
C>std::istream& getline(std::istream&& in, ~~~) {
C> ~~~
C> return static_cast<std::istream&>(in);
C>}
C>
А вообще, выглядит очень костыльно эта фича, с моей точки зрения. Никто не будет выписывать эти статик касты, а будут писать вот так:
return *∈
Они ведь не собираются отменять правило "named rvalue references are treated as lvalues", как я понял. Так кого и от чего они спасают этими костылями? Лучше бы оставили более строгие и менее противоречивые правила.
Re[4]: Reference binding in C++23 - bug of gcc?
Здравствуйте, cserg, Вы писали:
C>Да, пункт 5.1 как раз ваш случай, код который ломается из-за изменений:
C>
А вообще, выглядит очень костыльно эта "фича", с моей точки зрения. Никто не будет выписывать эти статик касты, а будут писать вот так:
Они ведь не собираются отменять правило "named rvalue references are treated as lvalues", как я понял. Так кого и от чего они спасают этими костылями? Лучше бы оставили более строгие и менее противоречивые правила.
C>Да, пункт 5.1 как раз ваш случай, код который ломается из-за изменений:
C>
C>std::istream& getline(std::istream&& in, ~~~) {
C> ~~~
C> return in;
C>}
C>// was changed to
C>std::istream& getline(std::istream&& in, ~~~) {
C> ~~~
C> return static_cast<std::istream&>(in);
C>}
C>
А вообще, выглядит очень костыльно эта "фича", с моей точки зрения. Никто не будет выписывать эти статик касты, а будут писать вот так:
return *∈
Они ведь не собираются отменять правило "named rvalue references are treated as lvalues", как я понял. Так кого и от чего они спасают этими костылями? Лучше бы оставили более строгие и менее противоречивые правила.