Аж залогинился чтобы написать ответ. Кризис стандартизации есть, но он совсем не в этом.
Кому вообще нужна эта графика в стандарте? Даже если что-то стандартизуют, то максимум это будет примитивная 2D-графика. Кому она нужна? Студентам для лабораторных? Кто будет использовать ее в продакшене вместо проверенных годами SDL и прочих?
И кто будет ее реализовать? Разработчики стандартных библиотек в этом не разбираются, а тут придется делать аж три копии одной и той же библиотеки, по одной на каждый крупный компилятор. И в каждой будут какие-то свои баги и проблемы, которые потом никогда не исправят, потому что ABI.
Зачем все это? "Фрагментация сообщества" звучит слабовато. Даже если это как-то пропихнут, будет как в https://xkcd.com/927/, добавится еще один (а точнее три!) варианта, а старые никуда не исчезнут. И новые библиотеки будут хуже, чем тот же SDL, поэтому кто их будет использовать?
Настоящий кризис стандартизации в том, что комитет не хочет ломать ABI и добавлять эпохи, поэтому костыли в языке остаются навечно. И в том, что нарисовался Rust и мода на безопасность, а комитет не может толком ничего этому противопоставить.
Я вижу только дополнительный static_assert() и защиту от неправильного использования.
Но я не могу придумать пример, когда (T &&)value не сработало бы как идеальная передача, если T — тип универсальной ссылки, выбранный компилятором автоматически. Можете привести такой пример?
Кто говорит про переписывать? Я же сказал, "эпохи". Возможность помечать новый код какими-то маркерами, которые отключают старое кривое поведение.
Аж залогинился чтобы написать ответ. Кризис стандартизации есть, но он совсем не в этом.
Кому вообще нужна эта графика в стандарте? Даже если что-то стандартизуют, то максимум это будет примитивная 2D-графика. Кому она нужна? Студентам для лабораторных? Кто будет использовать ее в продакшене вместо проверенных годами SDL и прочих?
И кто будет ее реализовать? Разработчики стандартных библиотек в этом не разбираются, а тут придется делать аж три копии одной и той же библиотеки, по одной на каждый крупный компилятор. И в каждой будут какие-то свои баги и проблемы, которые потом никогда не исправят, потому что ABI.
Зачем все это? "Фрагментация сообщества" звучит слабовато. Даже если это как-то пропихнут, будет как в https://xkcd.com/927/, добавится еще один (а точнее три!) варианта, а старые никуда не исчезнут. И новые библиотеки будут хуже, чем тот же SDL, поэтому кто их будет использовать?
Настоящий кризис стандартизации в том, что комитет не хочет ломать ABI и добавлять эпохи, поэтому костыли в языке остаются навечно. И в том, что нарисовался Rust и мода на безопасность, а комитет не может толком ничего этому противопоставить.
В 0x4 начиная с C++20 не нужен
std::cin.width(), все работает само: https://en.cppreference.com/w/cpp/io/basic_istream/operator_gtgt2В 0x8, мне кажется, любой нормальный человек использовал бы
wait_for, принимающий лямбду с условием, хотя это и не "одно слово".В 0xC
__end- зарезервированное имя, http://eel.is/c++draft/lex#name-3del
Я вижу только дополнительный
static_assert()и защиту от неправильного использования.Но я не могу придумать пример, когда
(T &&)valueне сработало бы как идеальная передача, еслиT— тип универсальной ссылки, выбранный компилятором автоматически. Можете привести такой пример?Все-таки
((Types&&)args...)— это тоже идеальная передача, и работает это так же, какstd::forward().Сработает, потому что это не
std::initializer_list.В обычной инициализации структур используется тот же синтаксис и никаких проблем не возникает, хотя типы разные. (Это было еще в С.)
Я очень надеюсь, что это был сарказм и намек на неточную формулировку текста на слайде...