ideas
ideas copied to clipboard
Идеи по улучшению языка C++ для обсуждения
# Что это такое сейчас Пусть есть код: ``` auto value = make_tuple(10, 'a', std::string("YourName")); В стандарте C++17 стало возможным писать такой код: ```cpp auto [a, b, c] = value...
В С++20 добавили барьеры и семафоры. Почему спинлок опять обошли? Непонятно... Думаю каждый велосипедил свой спинлок (через pthread_spin или std::atomic_flag. А теперь вообще можно через std::atomic::wait)
В С++20 сильно расширили зоопарк часов, но так и не сделали то чего хотелось бы. Проблемма 1. Сейчас (до с++20 по крайней мере) есть трое часов (system_clock, steady_clock, high_resolution_clock). system_clock...
_Перенос предложения:_ голоса +3, -7 _Автор идеи:_ ?? Пример, который не скомплируется в с++11 или слудующих версий, потому что enum color не конвертируется на "int" . Но в switch case...
_Перенос предложения:_ голоса +1, -2 _Автор идеи:_ ?? Представим что есть такой код: ```cpp enum class TestEnum { one, two }; void someFunc() { TestEnum test = TestEnum::one; switch (test)...
_Перенос предложения:_ голоса +0, -7 _Автор идеи:_ **Игорь Шаповал** В С++11 добавили контексные ключевые слова final, override. В языках C#, Kotlin (и в скором времени в Java) есть упакованные классы....
Изначально, std::any позиционировался как безопасная замена `void*`, но что-то пошло не по плану. В С++20 нет возможности поместить в std::any некопируемые типы, например типы содержащие std::unqiue_ptr или std::mutex. ### Решение...
_Перенос предложения:_ голоса +16, -0 _Автор идеи:_ **Yuriy Chernyshov** По факту многие современные компиляторы имеют функцию __builtin_strlen, которая является constexpr. Нужно только закрепить эту возможность в стандарте. На ::strlen такие...
_Перенос предложения:_ голоса +14, -0 _Автор идеи:_ **Игорь Шаповал** В С99 было добавлено ключевое слово restrict. Оно применимо только к указателям. restrict позволяет указать, что объявляемый указатель указывает на блок...
_Перенос предложения:_ голоса +0, -16 _Автор идеи:_ **Олег Ляттэ** Сейчас, насколько я знаю, реализации строк через COW препятствуют некоторые требования к интерфейсу строк. В частности, чтобы получение неконстантного итератора или...