Re[4]: Reference binding in C++23 - bug of gcc?
От: rg45 СССР  
Дата: 31.01.25 21:51
Оценка:
Здравствуйте, cserg, Вы писали:

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 *&in;


Они ведь не собираются отменять правило "named rvalue references are treated as lvalues", как я понял. Так кого и от чего они спасают этими костылями? Лучше бы оставили более строгие и менее противоречивые правила.
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 31.01.2025 21:52 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.