Описание тега variadic-templates
Шаблоны с переменным числом параметров - это шаблоны, которые принимают переменное количество параметров.
1
ответ
Соответствие параметров шаблонов переменных в std::function
У меня есть следующий код: #include <iostream> #include <functional> template<typename Return, typename... Params> void func(std::function<Return(Params... )> x) {} void f(double) {} int main() { //func<void, double>(f)…
27 май '14 в 22:34
2
ответа
Как преобразовать этот список типов с разбойником?
У меня есть следующий список типов: using ComponentList = brigand::list<TransformComponent, ObjectComponent, BodyComponent> Как я могу преобразовать предыдущий список в новый список, который будет выглядеть так: using ComponentHandleList = bri…
18 ноя '18 в 23:05
6
ответов
Размер шаблона вариации (сумма размеров всех элементов)
Учитывая следующую функцию: template<typename... List> inline unsigned int myFunction(const List&... list) { return /* SOMETHING */; } Что проще всего поставить вместо /* SOMETHING */ чтобы вернуть сумму sizeof все аргументы? Например myFu…
01 окт '12 в 02:05
2
ответа
Для каждого типа шаблона аргумент типа набора
Скажем, у меня есть шаблон класса Variadic. Как создать функцию так, чтобы ее аргументы были заданного типа, например intс количеством аргументов, равным количеству типов шаблонов? template <typename... Types> class Test { public: void Func(??…
13 окт '16 в 07:49
1
ответ
Шаблонный аргумент и вывод параметров std::function
Предположим, есть функция шаблона foo() который принимает произвольное количество аргументов. Учитывая последний аргумент, всегда std::functionкак мне реализовать foo() шаблон показан ниже таким образом, что CbArgs будет содержать это std::functionп…
19 фев '17 в 22:34
2
ответа
Одиночные, любопытно повторяющиеся шаблоны и параметры конструктора пересылки
Хорошо, я знаю, что синглетонов следует избегать, однако есть несколько случаев, когда они действительно нужны. Поэтому мое решение реализует их с использованием CRTP (странно повторяющийся шаблон) следующим образом: #include <iostream> #inclu…
25 июл '14 в 21:28
0
ответов
Есть ли обходной путь для расширения пакета параметров при использовании объявлений
Расширение пакета параметров при использовании объявлений не поддерживается в C++ 14, поэтому следующий код не компилируется: template<typename T> struct A { virtual void foo(T); }; template<typename... T> struct B: public A<T>...…
22 дек '15 в 15:05
1
ответ
Доступ к отдельным типам вариационных шаблонов
Я создаю привязку lua в C++11. Я хочу обработать каждый тип в вариационном шаблоне. Я думал, что могу сделать что-то подобное, кроме как с помощью Params... представляет все типы внутри него, а не следующий отдельный тип внутри него, как это делают …
18 ноя '12 в 21:05
5
ответов
Нажатие и выталкивание первого элемента std::tuple
Я пишу функцию в C++ с переменным количеством аргументов (и разных типов) таким образом template<typename ...Ts> void myFunction(Ts ...args) { //create std::tuple to access and manipulate single elements of the pack auto myTuple = std::make_tu…
23 авг '16 в 12:38
1
ответ
Как перебирать переменные параметры шаблона для создания переменного числа локальных переменных?
У меня есть много функций, которые очень похожи, но работают с разным количеством и типом локальных объектов: template <class T> T* create1( const std::vector<std::string>& names ) { A a( names[0] ); B b( names[1] ); C c( names[2] );…
18 ноя '16 в 14:21
0
ответов
Наследование базового класса с помощью рекурсивного шаблона
Как наследовать базовый класс в рекурсивном шаблонном классе? Мое требование что-то вроде этого Base <--- Param<> <--- Param<int> <--- Param<char,int> <---- Param<double,char,int> Я пытался наследовать базовый кла…
17 янв '18 в 15:26
4
ответа
Создать шаблон из аргументов функций?
template<class... Foos> // N = sizeof...(Foos) template<typename... Args> // M = sizeof...(Args) void split_and_call(Args&&... args) { // Using Python notation here... Foos[0](*args[:a]); // a = arity of Foos[0] Foos[1](*args[a:b…
29 авг '15 в 17:21
2
ответа
Variadic шаблон конструктор специализация в шаблоне класса
Я хочу иметь возможность специализировать ctor класса следующим образом: template<typename T> class Foo { public: template<typename... Ts> Foo(Ts... & args) { // ... } template<> Foo(int i) { // ... } }; Я получаю следующую оши…
08 фев '14 в 09:23
2
ответа
Неоднозначная перегрузка на шаблонных вариационных шаблонах
Связанные с: Неоднозначная перегрузка доступа к шаблонным функциям без аргументов с переменными параметрами Простая функция шаблона не может мгновенно Почему эта переменная функция неоднозначна? Рассмотрим эту пару вариационных шаблонов: template<…
01 ноя '11 в 22:40
1
ответ
Ошибка сегментации в C++11 при игре с вариадическими шаблонами
Поэтому я играл с C++11 Varidiacs и хотел создать вещь под названием CallClass, в основном класс, который деформирует функцию для последующего вызова, когда все переменные установлены (действительно, я понятия не имею, может ли это быть полезным): #…
27 окт '16 в 08:41
2
ответа
Можно ли вызвать шаблонную функцию с переменным значением без явной специализации?
Я пытался написать функцию для пересылки аргументов для функции шаблона переменной, аналогично std::invoke, Вот код: #include <functional> template<class... Args> void f(Args&&... args) { } template<template<class...> cl…
04 май '18 в 09:50
1
ответ
Разверните пакет параметров в порядке
У меня есть функция, которая принимает кортеж, и я хочу перебрать членов кортежа по порядку. Моя текущая версия зависит от компилятора, потому что она использует параметры функции для распаковки членов кортежа (в std::make_tuple()). Я построил упрощ…
14 апр '15 в 13:05
2
ответа
Могу ли я иметь шаблонную функцию с переменным значением, возвращающую разные типы?
Я делаю некоторую десериализацию из байтового массива и сделал шаблон Variaad ExtractData, чтобы он работал как QByteArray data; // (this works just like std::vector<char>) std::vector<std::any> values = ExtractData<float, char>(da…
23 сен '18 в 16:57
1
ответ
Варианты шаблонов вопрос
Я пытаюсь написать общий код для сравнения std:: functions с помощью метода шаблона target(). Вот мой не универсальный пример кода: #include <cstdio> #include <functional> static void bar() {} static void baz() {} bool cmp(std::function&…
04 июл '11 в 10:56
2
ответа
Распаковка пакета параметров в C++
У меня две функции f а также g, f вычисляет его возвращаемое значение асинхронно и возвращает будущее. Теперь на основе нескольких возвращаемых значений fЯ хочу позвонить g, но я хочу убедиться, что вычисления значений f происходить параллельно. Рас…
02 авг '15 в 18:03