170 похожих чатов

Вопрос для знатоков стандарта: распространяется ли исправление https://cplusplus.github.io/LWG/issue1203 , попавшее

в C++20, на предыдущие стандарты?

Откуда возник вопрос: https://stackoverflow.com/questions/69320918/why-does-taking-istream-to-a-temporary-stringstream-works-but-not-when-tak
Кажется, что код из вопроса корректен только начиная с C++20: до C++11 у нас вообще нет мув-семантики, в C++17 там слева ещё требуется istream&&.

Но на cppreference это не так давно убрали и сказали, что поведение одинаковое аж с C++11 — это вообще законно? https://en.cppreference.com/mwiki/index.php?title=cpp/io/basic_istream/operator_gtgt2&diff=116602&oldid=106958

10 ответов

24 просмотра

А есть объяснение как временный объект stringstream биндится к не конст ссылке istream?

Egor-Suvorov Автор вопроса
Danya🔥
А есть объяснение как временный объект stringstrea...

Да. Никак. Там есть специальная перегрузка operator>> с левым rvalue-аргументом, которая перенаправляет, как раз Brian Bi на SO отвечает. И вот она то ли разная во всех стандартах, то ли, после принятия LWG1203 в 2020, стала одинаковой во всех стандартах — я вот этого не понимаю.

Egor-Suvorov Автор вопроса

Переформулирую вопрос: может ли вообще изменяться уже опубликованный стандарт? Скажем, каким-нибудь Defect Report. Или они только говорят, что надо в очередной ревизии стандарта что-то подкорректировать?

Egor Suvorov
Переформулирую вопрос: может ли вообще изменяться ...

Может, но это отдельно пишется. Например исправления std::format бэкпортируют из С++23 в С++20

Egor-Suvorov Автор вопроса
Stanislav Ershov
Может, но это отдельно пишется. Например исправлен...

Я так понял, что речь про вот это: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2216r3.html#polls А есть ли где-нибудь список таких портированных штук? Я вижу, что по опросам получилось "Strong consensus for DR against C++20", но на странице https://cplusplus.github.io/LWG/lwg-defects.html отдельного LWG не вижу

Egor Suvorov
Я так понял, что речь про вот это: http://www.open...

>Changed the following 280 issues to C++20 (from WP) я думаю, это он и есть

Egor-Suvorov Автор вопроса
Vlad
>Changed the following 280 issues to C++20 (from W...

Ну, они там явно перечислены и все на этой странице есть, у каждого свой номер вида LWG1234. Но поиск 2216 или каких-то цитат из секции "wording" P2216R2 ничего не находит.

Egor Suvorov
Ну, они там явно перечислены и все на этой страниц...

я ничего не нахожу на этот счет если это как-то поможет, то вот коммит, где эту бумагу добавили в стандарт https://github.com/cplusplus/draft/commit/cfc0da32db0c02758e2e027980fff0f12625b542

Egor-Suvorov Автор вопроса
Vlad
я ничего не нахожу на этот счет если это как-то по...

Да, в ближайший стандарт понятно. Мне интересно, как это влияет на будущие. Пока спросил на SO, надеюсь, формулировки достаточно ясные: https://stackoverflow.com/questions/69325059/was-lwg1203-more-useful-rvalue-stream-insertion-retroactively-applied-to-c11 https://stackoverflow.com/questions/69325106/is-there-a-list-of-all-changes-retroactively-applied-to-published-c-standards

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
Карта сайта