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

Количество результатов: 60

0 голосов
1 ответ
Как получить без движимого и не Copyable функции возвращает значение в массив

Я пытался реализовать совместный планировщик заданий с использованием C++ сопрограмм. Это включает в себя положить сопрограммы в массив. Однако я получаю ошибку Object...

4 голоса
1 ответ
Какие неудачи замена не допускается требует оговорок?

Я пытаюсь написать функцию, которая возвращает истину, если все параметры шаблона уникальны. Псевдо-код: template<typename... Ts> auto types_are_unique() ->...

39 голосов
2 ответа
По умолчанию параметр шаблона и лямбда в невычисленного контексте: ошибка или особенность?

Мы считаем, цель создания двух различных типов, используя один и тот же синтаксис. Это можно легко сделать с лямбды: auto x = []{}; auto y = []{}; static_assert(!std:...

11 голосов
2 ответа
Имеет ли C++ 20 хорошо определяют сдвиг влево для целых чисел, что «переполнение»?

В текущем С ++ проект стандарта, оператор сдвига влево определяется следующим образом [Expr.shift]: Значение E1 << E2 это уникальное значение конгруэнтны E1×...

24 голоса
3 ответа
C++ проверка, если заявление может быть оценена constexpr

Есть ли способ, чтобы решить, можно ли constexpr оценивали то, и использовать результат как constexpr булево? Мой упрощенный вариант использования заключается в следую...

4 голоса
3 ответа
Функция оптимизирована для постоянная времени компиляции

Предположим, что у меня есть функция вычисления длины вектора, который имеет дополнительный inc параметр (это указывает расстояние между соседними элементами). Реализа...

0 голосов
3 ответа
Частичная специализация с использованием понятия

Я просто читал примеры C++ 20 Концепции. Теперь я пытаюсь создать функцию, которая будет печатать, если данный тип является хэш-таблицы или не используя понятия, смеша...

8 голосов
2 ответа
Почему STD :: пядь отсутствие size_type?

Я обновляя старый код, который использовал мой доморощенный класс поверочного к одному, который больше соответствует C++ 20 std::span и я получаю ошибку компиляции, по...

1 голос
1 ответ
Шаблонные функции Лямбда с постоянными времени компиляции

Я получил этот кусок кода (сплит-код) Онлайн, чтобы разделить строки в довольно прохладной манере, но я хочу, чтобы сделать его немного более универсальным и управляем...

3 голоса
1 ответ
Невозможно вывести тип заполнителя в концепции

Я пытаюсь повторить стандарт C++ 20 концепций с использованием понятия TS в GCC 8, так что я могу использовать их, прежде чем они будут доступны в стандартной библиоте...

2 голоса
1 ответ
количество скобок для списка параметров в обозначенном инициализаторе

Я в настоящее время борюсь с количеством скобок в списке параметров, даже если я использую C++2a назначенный инициализатор. У меня есть несколько вложенных структур, ...

17 голосов
1 ответ
Лямбда пакет захвата многоточие с обеих сторон - в чем смысл?

P0780 ( «Разрешить расширение пакета в лямбда-инициализации захвата»), Одобрено для C++ 20, позволяет генерировать пакет данных закрывающих элементов путем размещения ...

2 голоса
1 ответ
Имеет стандартный модуль для C++ решить проблему сокрытия приватных данных от абонентов?

В C++, модули быть стандартизированы, чтобы решить проблему #include заворота среди других вещей. Составители в C++ должны разобрать слишком много. Но также, поскольк...

11 голосов
1 ответ
C++ 20 сопрограммы: Реализация awaitable будущего

Поскольку Сопрограммы TS был принят в C++ 20 на встрече ISO в Коне, я начал играть с ними немного для себя. Clang уже имеет достойную поддержку сопрограмм но реализаци...

1 голос
1 ответ
Модуль C++ «не удалось не читать модуль„std.io.gcm“: Нет такого файла или каталога»

Я пытаюсь модуля тест с ++ с использованием докер изображение docker pull benboeckel/cxx-modules-sandbox:latest docker run -it image_id sh-4.4$ g++ --version g++ (G...

3 голоса
2 ответа
Переход от целых чисел до целых чисел без знака и наоборот в C++ 20

До C++ 20 целых чисел не были гарантированы двоичным дополнение. Теперь у нас есть два документа, стандартизация котором предлагается дополнения до двух в качестве еди...

0 голосов
1 ответ
Сокращать аргумент функции члена Ожидая ввел тип (перечисление класс)

TL; DR Есть Более короткий синтаксис для типа класса перечисления аргумента функции члена (field_inst.write(decltype(field_inst)::Type::cpr1_4096);) В следующем коде? ...

1 голос
0 ответов
Является ли пост-условие функции действует во всех случаях или только если функция успешна?

Скажем, у меня есть следующие функции: int reserve(DmaChannel& channel, const uint8_t request) { const auto ret = channel.reserve(request); if (ret != 0) ...

3 голоса
3 ответа
Как заполнить зЬй :: массив с диапазоном от диапазона-v3?

Я полный новичок с библиотекой диапазона v3 .. Предположим, я хочу, чтобы заполнить std::array со случайными числами в некотором интервале. С итераторами, я сделаю ч...

5 голосов
2 ответа
Вы можете пронестись с новой библиотекой диапазонов?

Видеть: http://eel.is/c++draft/#ranges Принимая во внимание два диапазона C++, 2а (как в объектах, которые соответствуют концепции диапазонов библиотеки диапазонов) а...

0 голосов
2 ответа
Приведенный ниже код не компилируется. Может быть, потому, что GCC с станд = C++ 2а еще не полностью в курсе самых последних проектов

[Class.mem]/6: Полный класс контекст класса является (6.1) функция тела, (6.2) по умолчанию аргумент, (6.3)   noexcept спецификатор ([except.spec]), (6,4) кон...

13 голосов
1 ответ
P1236R1: Почему C++ стандарт пытается отойти от слова «бит» при определении целых чисел?

Согласно с P1236R1, В настоящее время не целочисленные типы определяются с числами, больше не с битами. type minimum range exponent N signed char 8 short ...

12 голосов
2 ответа
Переадресация на агрегатный Initializer?

Мне кажется, что инициализация агрегата (подходящих типов) не считается конструктором, который вы можете позвонить (за исключением нескольких случаев.) В качестве при...

0 голосов
1 ответ
Функции uninitialized_X, которые используют конструктор? распределитель

Есть версия uninitialized_value_construct который использует распределитель для построения элемента в месте вместо размещения new? Это ниже является Прототипом реализ...

27 голосов
2 ответа
Как использовать понятие, если-constexpr?

Как один концепции использования в if constexpr? Учитывая пример ниже, чем бы один дать if constexpr вернуться 1 в случае, если T отвечает требованиям integral и еще ...

10 голосов
1 ответ
Почему CopyConstructible типа также должны быть MoveConstructible?

Как указано в cppreference, Требование к типу T, чтобы быть CopyConstructible является то, что оно также может быть MoveConstructible. Проект для СТЛ CopyConstructibl...

0 голосов
1 ответ
Концепция не решает двусмысленность, как ожидалось. Что случилось с образцом кода?

Я экспериментирую с понятиями C++. Пытался неоднозначность шаблона «используя» статью, используя концепцию. Вот упрощенный пример: namespace A { template <typena...

10 голосов
2 ответа
C++ вариант преобразования конструктора с BOOL

На cppreference (4) преобразования конструктора описывается следующим образом: Преобразование конструктора. Создает вариант, удерживающий альтернативный тип T_j ко...

12 голосов
1 ответ
шаблон с лямбда в качестве уникального параметра по умолчанию на каждом конкретизации

Я ищу способ автоматически сделать шаблонный параметр по умолчанию быть уникальным каждый раз, когда шаблон конкретизируется. Так как безымянные функции объекты, созда...

3 голоса
2 ответа
Реальный пример использования для оператора космического корабля

Определение оператора космического корабля предназначено иметь сильное определение упорядоченности, но это влияет на способ вашего клиента кода или просто как определи...

0 голосов
1 ответ
Использование CRTP полученные «с помощью» в C++ 20

Я пытаюсь сделать мою голову вокруг CRTP и C++ 20. В принципе, я хотел бы иметь статическое наследование, которые могут получить доступ к производному типу-х typedefs ...

22 голоса
1 ответ
Что такое C++ строка шаблона буквального оператора 20ого?

Что такое C++ строка шаблона буквального оператора 20ого? Cppreference-х пример в этом отношении весьма краткий и не очень понятно мне: struct A { A(const char *); au...

3 голоса
1 ответ
Концепция состоит на основе шаблонов функций перегрузок

Пример того, как мы будем перегружать функции-членов шаблона класса шаблона в отсутствии понятий показан на этот фрагмент. Теперь примерно пытаясь написать что-то под...

2 голоса
2 ответа
Дизъюнкция в требовании концепции

требует выражения как правило, выглядит следующим образом: requires ( parameter-list(optional) ) { requirement-seq }. Можно ли сформировать дизъюнкции (||) в качеств...

1 голос
1 ответ
это целые числа теперь ведут себя по-разному, в отношении левого сдвига?

В C++ 20, целые числа теперь определены использовать двоичное дополнение,видеть http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0907r3.html Это долгожданное ...

16 голосов
2 ответа
станд :: is_constant_evaluated поведение

GCC9 уже реализует std::is_constant_evaluated. Я играл немного с ним, и я понял, что это несколько сложнее. Вот мой тест: constexpr int Fn1() { if constexpr (std::i...

8 голосов
3 ответа
Отключить специализацию класса, используя понятия

Я реализую свою собственную версию std::span используя Концепции TS. Я застрял реализации эти конструкторы: template<class Container> constexpr span(Container&a...

154 голоса
5 ответов
Почему мы требуем требует требует?

Один из углов концептов C++ 20 заключается в том, что есть определенные ситуации, в которых вы должны написать requires requires. Например, этот пример из [Expr.prim.r...

1 голос
3 ответа
Концепции C++: проверка на создание шаблона

Предполагая, что у меня есть шаблонный тип, например template<typename A, typename B, typename C> struct mytype { }; Как мне написать концепцию, которая прове...

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

c++ 14 представил общие лямбды, которые позволили написать следующее: auto func = [](auto a, auto b){ return a + b; }; auto Foo = func(2, 5); auto Bar = func("hel...

-1 голос
3 ответа
Должны ли лямбды заменять шаблоны функций в C++?

В C++ я могу написать: auto sum(const auto& x1, const auto& x2) { return x1 + x2; } int main() { cout << sum(1, 2) << endl; cout <...

3 голоса
2 ответа
Устаревший лямбда-захват в C++ 20

Как предложено в документе P0409R2 Я ожидаю, что определение x будет исключено из C++ 20 и не скомпилируется, но, похоже, оно работает в g ​​++ (GCC) 8.1.0. Кто-нибуд...

4 голоса
1 ответ
Реализация std :: vector :: push_back безопасности сильных исключений

Я реализую свой собственный вектор на основе проекта Сан-Диего после 2018 года (N4791) и есть некоторые вопросы относительно реализации строгой безопасности исключения...

4 голоса
3 ответа
Почему `std :: chrono :: weekday` позволяет, но не сохраняет значения за пределами допустимого диапазона?

По разделу [Time.cal.wd.overview]/1 стандарта C++: weekday представляет день недели в гражданском календаре. Обычно он содержит значения в диапазоне 0 в 6, что соо...

13 голосов
1 ответ
Почему std :: filesystem :: u8path устарела в c ++ 20?

Введенный в C++ 17, std::filesystem::u8path кажется, устарела в C++ 20. В чем причина этого выбора? Что я должен использовать в C++ 17? Что я должен использовать в C+...

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

Некоторые реализации C++ (например, встроенные устройства с батарейным питанием) могут быть бесполезны или не могут отслеживать текущую дату и время. Стандарт C специ...

5 голосов
2 ответа
О ограничений и понятий

Я не понимаю, почему C++ 20 предоставляет такую ​​функцию, как это. Я думаю, что это излишним, да, я уверен, что я не прав, но мне нужен кто-то, чтобы указать на то, п...

10 голосов
1 ответ
Зачем нам нужен космический корабль <=> оператор в C++?

Зачем нам нужен такой оператор в C++ и как это полезно в современном программировании на C++? Любой реальный мир примеры кода, где это может быть применен поможет. Эт...

8 голосов
1 ответ
Шаблон вычет по сравнению с неявным оператором преобразования определяемого пользователя

Я пытался реализовать небольшой пример определяемого пользователя преобразования типов, связанные с шаблонами. #include &lt;cassert&gt; #include &lt;cstdint&gt; #incl...

11 голосов
1 ответ
Почему станд :: вариант не может держать типы объектов массива в то время как союз может?

Вот простой пример, Мы можем определить низкий уровень union так : static union { uint64_t a; uint8_t b[8]; }; но мы не можем объявить std::variant как это ...

1 2 right