cpp-ru / ideas

Идеи по улучшению языка C++ для обсуждения
https://cpp-ru.github.io/proposals
Creative Commons Zero v1.0 Universal
88 stars 0 forks source link

Уточнить поведение `std::forward_list::merge` #491

Closed pavelkryukov closed 2 years ago

pavelkryukov commented 2 years ago

Для двусвязного списка std::list в n4901 в описании метода merge есть такая ремарка:

Effects: If addressof(x) == this, does nothing;

Для односвязного списка std::forward_list об этом случае ничего не сказано. Из-за этого поведение имплементаций различно:

Поэтому предлагается:

pavelkryukov commented 2 years ago

https://cplusplus.github.io/LWG/issue3088

pavelkryukov commented 2 years ago

В GCC отправил патч: https://github.com/gcc-mirror/gcc/commit/52ebc2be0990d6d3a46bb716164f9cef6f661021