ideas
ideas copied to clipboard
Идеи по улучшению языка C++ для обсуждения
Добавить в switch возможность авто увеличения case-ов как у enum-ов Примеры: ``` int A::step() { switch(this->state++) { default: return 0; next_case: fn1(); break; next_case: fn2(); break; next_case: fn3(); break; //...
_Перенос предложения:_ голоса +0, -12 _Автор идеи:_ **kitmouse** Попадаются длинные строки, возвращающие значение, которое надо разыменовать, чтобы сравнить, присвоить и т.д.. *foobaar.foobarmember[longIndexVariableName]->retrievePointerToSomething()->vectorOfPointers[anotherIndex] = anotherThing; Выражение легко читается слева направо -...
_Перенос предложения:_ голоса +20, -2 _Автор идеи:_ **Evgeny Basargin** Иногда приходится писать подобный код: ```cpp auto systemIsOk = false; for(auto& element : systemElements) { systemIsOk = systemIsOk && element.isOk(); }...
Собственно, идея в заголовке. Черновик (очень-очень сырой) proposal-а содержит [мотивацию](https://github.com/AndreyG/cpp-papers/blob/main/span-of-incomplete-element-type.md#motivation-and-scope), так что просто повторю ее здесь. Сейчас (в C++20) такой естественный код не валиден: ```cpp class Element; class Storage {...
В С++20 уже есть модули и import std использует обычный модуль без доработок из С++20, поэтому нет никаких препятствий использовать import std уже в С++20 Это позволит гораздо быстрее и...
Хотелось иметь возможность получения ошибки/предупреждения на этапе компиляции если структура является выровненной, а реальный размер отличается и нет никаких `#pragm` и `__attribute__`. Например: ```cpp // Case 1 struct ProtocolHeader {...
пните комитет добавить метод empty в regex проверка установлен ли regex через assign или через конструктор скопипастили весь бустовый, но самый главный метод забыли при том что во всех трех...
При работе с классами, хорошей практикой, является объявление полей закрытыми. Для чтения значения полей из вне, в классе объявляют геттеры. А для записи объявляют сеттеры. Возьмём для примера класс QPoint...
__ в C++17 была добавлена прекрасная фича -- class template argument deduction (CTAD), которая избавила нас от необходимости явно указывать шаблонные параметры у классов: ```c++ std::pair before_cpp17{0, 0}; std::pair after_cpp17{0,...
Кажется в С++ нарастает количество типов которые... ну как бы "ничего" С++11 `std::nullptr_t` / `nullptr` C++17 `std::nullopt_t` / `std::nullopt` also C++17 `std::monostate` (тоже обозначает "ничего" и умеет сравниваться) Важно отметить...