Вопросы с тегом 'c++20'

С++ 20 является целью для версии С++ после С++ 17. Этот тег следует использовать (вместе с тегом С++) для вопросов о возможностях С++ на треке для С++ 20.
26 отв.

перечисление в строку в современном С++ 11/С++ 14/С++ 17 и будущем С++ 20

Вопреки всем другим подобным вопросам, этот вопрос касается использования новых функций C++. 2008 c Есть ли простой способ преобразовать перечисление C++ в строку? 2008 c Простой способ использовать переменные перечислимых типов в виде строки в C?...
03 марта '15 в 13:05
3 отв.

Что такое оператор <=> в С++?

Пока я пытался узнать о операторах С++, я наткнулся на странный оператор сравнения на cppreference.com, * в таблице, которая выглядит так: "Ну, если это обычные операторы на С++, я лучше их узнаю", - подумал я. Но все мои попытки разъяснить эту т...
24 нояб. '17 в 7:26
5 отв.

Почему мы требуем требует требует?

Один из углов концепций С++ 20 заключается в том, что существуют определенные ситуации, в которых вам нужно написать " requires requires. Например, этот пример из [expr.prim.req]/3: Выражение require также может использоваться в предложении requir...
15 янв. '19 в 17:33
4 отв.

Зачем нужен шаблон лямбда, введенный в С++ 20, когда в С++ 14 уже есть универсальная лямбда?

c++14 представил общие лямбды, которые позволили написать следующее: auto func = [](auto a, auto b){ return a + b; }; auto Foo = func(2, 5); auto Bar = func("hello", "world"); Совершенно очевидно, что этот общая лямбда func работает так же, ка...
10 янв. '19 в 13:04
2 отв.

Возможно ли в современных C++ передать строковый литерал в качестве параметра шаблону C++?

Возможно ли в "современном C++" (C++ 17 или выше) передать строковый литерал в качестве параметра шаблону C++? Я понимаю, что вы можете сделать это с аргументом конструктора; Я просто подумал, что было бы удобнее иметь его как аргумент шаблона, а н...
05 июля '18 в 18:47
2 отв.

Почему std :: ssize() введен в С++ 20?

С++ 20 представил свободную функцию std::ssize() как std::ssize() ниже: template <class C> constexpr auto ssize(const C& c) -> std::common_type_t<std::ptrdiff_t, std::make_signed_t<decltyp...
20 мая '19 в 11:46
2 отв.

Как я должен писать свой С++ для подготовки модулей С++?

Уже есть два компилятора, которые поддерживают модули С++: Clang: http://clang.llvm.org/docs/Modules.html MS VS 2015: http://blogs.msdn.com/b/vcblog/archive/2015/12/03/c-modules-in-vs-2015-update-1.aspx При запуске нового проекта, на что я должен ...
07 янв. '16 в 12:51
3 отв.

Что такое сопрограммы в С++ 20?

Что такое сопрограммы в c++20? Чем он отличается от "Parallelism2" или/и "Concurrency2" (см. Изображение ниже)? Изображение ниже от ISOCPP. https://isocpp.org/files/img/wg21-timeline-2017-03.png
19 апр. '17 в 21:39
3 отв.

Параметр шаблона по умолчанию и лямбда в недооцененном контексте: ошибка или функция?

Мы рассматриваем цель создания двух разных типов, используя один и тот же синтаксис. Это легко сделать с помощью лямбды: auto x = []{}; auto y = []{}; static_assert(!std::is_same_v<decltype(x), decltype(y)>); Но вместо того, чтобы использова...
02 апр. '19 в 15:53
1 отв.

Как соответствующая реализация C++ может указывать, что она не знает текущей даты и времени?

Некоторые реализации C++ (например, встроенные устройства с батарейным питанием) могут быть бесполезны или не могут отслеживать текущую дату и время. Стандарт C специально предусматривает такие реализации. Цитировать из ISO/IEC 9899: 1999 7.23.2.4 ...
01 янв. '19 в 19:52
3 отв.

Каким образом оператор трехстороннего сравнения отличается от вычитания?

В С++ 20 появился новый оператор сравнения <=>. Однако я думаю, что в большинстве случаев простое вычитание хорошо работает: int my_strcmp(const char *a, const char *b) { while (*a == *b && *a != 0 && *b != 0) { a+...
31 дек. '17 в 16:41
2 отв.

Как использовать модули С++ в Clang?

Модули являются альтернативой #includes. Clang имеет полную реализацию для С++. Как бы я пошел, если бы захотел использовать модули с помощью Clang сейчас? Использование import std.io; в исходном файле С++ не работает (компилируется), так как спе...
23 окт. '15 в 19:52
2 отв.

Будет ли специализация шаблонов функций в std для программных типов больше не разрешена в С++ 20?

Цитата из cppreference.com: Добавление специализированных шаблонов Разрешено добавлять специализированные шаблоны для любой стандартной библиотеки | class (с С++ 20) | шаблон в пространство имен std, только если декларация зависит, по крайней мер...
11 окт. '18 в 15:54
3 отв.

Будут ли функции conteval разрешать параметры шаблона в зависимости от аргументов функции?

В С++ 17 этот код недопустим: constexpr int foo(int i) { return std::integral_constant<int, i>::value; } Это потому, что даже если foo может быть вычислен во время компиляции, компилятору все равно нужно создавать инструкции для его выпо...
14 мая '19 в 15:43
1 отв.

Как обрабатываются шаблоны в модульной системе C++?

Я читаю документ A Module System для C++, чтобы понять модули C++, предлагаемую функцию для C++. Я не могу полностью понять, как шаблоны будут экспортироваться этой архитектурой модуля. Есть идеи?
09 мая '17 в 7:52