ideas
ideas copied to clipboard
Идеи по улучшению языка C++ для обсуждения
C++ хорош тем, что он позволяет без лишней возни и оверхеда использовать C'шные библиотеки. однако в некоторых сценариях межъязыковое взаимодействие всё-таки даёт о себе знать: предположим, C'шная библиотека возвращает какой-то...
Часто не хватает простого способа получить имя типа в шаблоне. ( например в диагностике static_assert ) Почему бы не добавить nameof который работал бы аналогично size_of, но возвращал бы string_view/char*...
В идеальном мире return_value/void и final_suspend это одна функция. На текущий момент времени этого уже сделать нельзя, к тому же возможно имеются сложности в реализации этого на уровне компилятора (из-за...
Уже несколько лет почти ежедневно пользуюсь std::vector. И очень частая ситуация (95% случаев), когда код выглядит примерно так: ```cpp std::vector data; data.reserve(some_value); ``` И имхо очень неудобно делать это постоянно...
Неявное приведение std::pair к структуре. Возможное продолжение с structured binding и упрощение синтаксиса С++. Приведение будет работать если типы структуры и pair совпадают, ну и логично количество элементов только 2....
## Сама идея Хочется иметь возможность явно говорить компилятору, что указатель на структуру ```c++ struct xy{ int x; int y; }; ``` можно считать указателям на эту: ```c++ struct Coords{...
> «Pointers to layout-compatible types shall have the same value representation and alignment requirements» [(3.4) [basic.compound]](https://eel.is/c++draft/basic.compound#3.4) > «Evaluates load(order) and compares its value representation for equality against that of old.»...
В C++ валиден такой синтаксис: ```c++ struct A { int foo(int x); }; int bar(int x); A a; (a.foo)(5); (bar)(5); ``` При этом выражение `(bar)` может быть присвоено переменной –...
**Предложение** Определить `operator->*` для того, что в стандартной библиотеке умеет в `operator->`. Навскидку вспоминаю `unique_ptr`, `shared_ptr`, `optional`, итераторы. ```c++ template R& operator->*(R T::*member) const { return this->operator->()->*member; } template auto...
_Перенос предложения:_ голоса +12, -10 _Aвтор идеи:_ **Эдвард Давтян** Часто нужно знать зашли ли мы хоть раз в цикл while. Для этого все заводят булеву переменную и проставляют её значение...