История изменений
Исправление Siborgium, (текущая версия) :
Неудобна семантика неявного копирования структур по-умолчанию. Const-reference, std::move – мусор, нужно всё наоборот
Это не является проблемой такого уровня, после которой нужно все сносить и начинать делать с нуля. Более того, move по умолчанию это тоже значительных размеров footgun.
Если имеется в виду деструктивный move а-ля Rust, то это клиника – по ссылке выше понятно, почему это тупик. И это только одна из причин.
от бесконечного кода пофигистов, пренебрегающих
Это не является проблемой языка.
невозможно использовать их правильно
У тебя не получается, поэтому надо всем запретить.
Pimpl. Почему я не могу сделать forward declaration метода incomplete класса, если это по сути функция, использующая его по ссылке?
Нишевый случай. Если ты часто пишешь pimpl’ы, то ты что-то делаешь не так.
iostreams - crap,
Нет. В соседнем топике fsb4000 достаточно популярно объяснил преимущества iostream’ов. Да,
{fmt}
и std::print
из С++20 удобнее в использовании, но у них свои недостатки.
shared_ptr – обязательно atomic,
Конечно. Потому что не-атомарный shared_ptr можно использовать только из одного потока. В одном потоке исполнения создавать объекты со счетчиком ссылок смысла нет.
std::future – crap,
Я знаю только две «проблемы» с std::future: отсутствие монадических операций, и отсутствие wait_all. Первые не нужны вовсе, второе решается барьерами в С++20.
std::regex – crap.
Да. И?
Взять C + designated initializers
Т.е С++20.
defer
Т.е. навернуть за обе щеки хак, которым пользуются гоферы из-за того, что им не завезли RAII.
добавить шаблоны
Конструкторы и деструкторы выбросить
Без конструкторов и деструкторов невозможно писать шаблонный код. Без исключений невозможно написать конструктор.
перегрузку операторов и функций по большей части выбросить
Выкинуть расширяемость. Дай угадаю, еще трейтами надо обмазаться?
стандартизировать simd либу аля xsimd/highway
Это пытаются протащить в стандарт. Не нужно.
Изучи сперва язык. Твои претензии за вычетом буквально пары сводятся к тому, что нужно выкинуть или запретить то, смысл чего ты не понимаешь или не умеешь использовать. Это лично твои проблемы. Они никого не волнуют.
Исходная версия Siborgium, :
Неудобна семантика неявного копирования структур по-умолчанию. Const-reference, std::move – мусор, нужно всё наоборот
Это не является проблемой такого уровня, после которой нужно все сносить и начинать делать с нуля. Более того, move по умолчанию это тоже значительных размеров footgun.
Если имеется в виду деструктивный move а-ля Rust, то это клиника – по ссылке выше понятно, почему это тупик. И это только одна из причин.
от бесконечного кода пофигистов, пренебрегающих
Это не является проблемой языка.
невозможно использовать их правильно
У тебя не получается, поэтому надо всем запретить.
Pimpl. Почему я не могу сделать forward declaration метода incomplete класса, если это по сути функция, использующая его по ссылке?
Нишевый случай. Если ты часто пишешь pimpl’ы, то ты что-то делаешь не так.
iostreams - crap,
Нет. В соседнем топике fsb4000 достаточно популярно объяснил преимущества iostream’ов.
shared_ptr – обязательно atomic,
Конечно. Потому что не-атомарный shared_ptr можно использовать только из одного потока. В одном потоке исполнения создавать объекты со счетчиком ссылок смысла нет.
std::future – crap,
Я знаю только две «проблемы» с std::future: отсутствие монадических операций, и отсутствие wait_all. Первые не нужны вовсе, второе решается барьерами в С++20.
std::regex – crap.
Да. И?
Взять C + designated initializers
Т.е С++20.
defer
Т.е. навернуть за обе щеки хак, которым пользуются гоферы из-за того, что им не завезли RAII.
добавить шаблоны
Конструкторы и деструкторы выбросить
Без конструкторов и деструкторов невозможно писать шаблонный код. Без исключений невозможно написать конструктор.
перегрузку операторов и функций по большей части выбросить
Выкинуть расширяемость. Дай угадаю, еще трейтами надо обмазаться?
стандартизировать simd либу аля xsimd/highway
Это пытаются протащить в стандарт. Не нужно.
Изучи сперва язык. Твои претензии за вычетом буквально пары сводятся к тому, что нужно выкинуть или запретить то, смысл чего ты не понимаешь или не умеешь использовать. Это лично твои проблемы. Они никого не волнуют.