Вопросы по теме 'type-deduction'

выведены конфликтующие типы для параметра «T» для универсальной ссылки
Я тестирую универсальную ссылку со следующим кодом: template <typename T> vector<T> attach_(vector<T> xs, T&& x) { xs.push_back(std::forward<T>(x)); return xs; } int main() { int k = 2;...
8904 просмотров
schedule 29.07.2022

Почему существует разница между шаблоном и автоматическим выводом типа для краевого случая std::initializer_list?
По сути, в C++11 существует три типа вывода типов: шаблоны auto decltype В большинстве случаев вывод типа auto и шаблонов, по-видимому, действует одинаково. Но есть один случай - когда мы устанавливаем переменную auto в...
51 просмотров
schedule 25.11.2022

Каковы правила вывода типов для auto*?
Каковы правила вывода типов для auto* ? Рассмотрим следующее: int x = 64; int* px = &x; auto* v1 = &x; // auto => ??? ok v1 is int* ... auto* v2 = px; // auto => ??? is v2 int* ? auto* v3 = &px; // auto =>...
1350 просмотров
schedule 20.10.2022

Вычет функции
Допустим, у нас есть такой шаблон класса: template<typename F> class A { public: template<typename... Args> A(F f, Args... args) { /* Do something... */ } }; И теперь я хочу использовать его как-то так: A<int(int)>...
1611 просмотров
schedule 30.11.2023

Определите тип объявления
Я пишу макрос, который принимает объявление в качестве единственного аргумента. Можно ли определить тип объявления внутри макроса, не разделяя один аргумент на отдельные аргументы type и identifier ? #define M(declaration) \ declaration;...
95 просмотров
schedule 29.11.2023

Установление связей между типами и значениями
У меня есть реализации арифметики на уровне типов, способные выполнять некоторую арифметическую проверку времени компиляции, а именно <,>,= двумя способами: простая реализация строгая реализация С ними у меня может быть функция...
85 просмотров

Как работает вывод типа в этом примере Docopt?
Взгляните на этот код, используя библиотеку docopt: const USAGE: &'static str = "...something..."; #[derive(Deserialize)] struct Args { flag: bool, } type Result<T> = result::Result<T, Box<error::Error + Send + Sync>>;...
111 просмотров

Почему компилятор требует указания типа?
Я реализовал шаблон класса, который отвечает за построение одного типа (следует шаблону построителя). Конструктор построителя используется для вывода двух типов. Ниже приведен пример, демонстрирующий проблему (с использованием проводника...
114 просмотров
schedule 27.07.2022

Непонимание вариативных шаблонов и вывод типа шаблона
Я компилирую C++17 с кодом, подобным этому образцу: #include <iostream> #include <iterator> class Foo {}; template <typename... Args, typename ostream_type = ::std::basic_ostream<Args...>, typename...
36 просмотров

Невозможно определить тип элемента шаблонного класса
Вдохновленный этим примером, а именно этим конкретным фрагментом кода // ... template<class... Ts> struct overloaded : Ts... { using Ts::operator()...; }; template<class... Ts> overloaded(Ts...) -> overloaded<Ts...>; // ......
62 просмотров
schedule 02.01.2024

вывести тип переменной-члена
Отредактировано: я забыл, что обратный вызов захватывает указатель this на outer . Я пытаюсь инициализировать некоторый класс и его член. Класс не шаблонен. Его элемент является шаблонным. Он принимает тип функции по шаблону для...
124 просмотров
schedule 23.03.2024