Вопросы по теме 'variadic-templates'

Вариативные шаблоны
Я видел много ссылок, представляющих вариативные шаблоны. Но я никогда не видел компилируемого примера, демонстрирующего этот подход. Может ли кто-нибудь предоставить мне ссылки, в которых можно найти такие компилируемые примеры?
14556 просмотров
schedule 22.02.2022

списки инициализаторов c++ и вариативные шаблоны
Я хотел создать массив: template < typename T, typename ... A > struct a { T x [1 + sizeof... (A)]; a () = default; a (T && t, A && ... y) : x { t, y... } {} }; int main () { a < int, int > p { 1, 1 }; // ok...
998 просмотров

Специализация шаблона для пустого пакета параметров
У меня есть вариативная шаблонная функция, которая вызывает себя для определения наибольшего числа в списке (состоящем из шаблонных аргументов). Я пытаюсь сделать специализацию, когда пакет параметров пуст, поэтому я могу просто вернуть число в...
12414 просмотров

Вопрос о шаблонах Variadic
Я пытаюсь написать общий код для сравнения std::functions, используя метод шаблона target(). Вот мой необщий пример кода: #include <cstdio> #include <functional> static void bar() {} static void baz() {} bool...
458 просмотров
schedule 26.06.2022

Рекурсивная метафункция с использованием вариативных шаблонов
Я пишу метафункцию replace_type<C, X, Y> , которая должна заменить все совпадения типа X в составном типе C на Y . В настоящее время я работаю над тем, чтобы правильно заставить это работать с вызываемыми объектами в C . Это работает:...
1096 просмотров

Последовательность среди вариативного расширения
Для этого невариативного примера: int Func1(); double Func2(); void MyFunc( int, double ); int main() { MyFunc( Func1(), Func2() ); //... } не указано, вычисляется ли сначала Func1() или Func2() , просто оба должны быть...
548 просмотров

Указатель статической функции-члена в качестве аргумента шаблона
Я получаю эту ошибку компиляции с последним компилятором VC++ (ноябрь 2012 г. CTP) при использовании указателя статической функции-члена в качестве аргумента шаблона: error C2027: use of undefined type 'wrapper<int (int,int),int...
2076 просмотров
schedule 17.05.2024

Поддержка пакета параметров std :: is_base_of ()
Есть ли возможность иметь статическое утверждение, реализует ли тип, предоставленный в качестве аргумента шаблона, все типы, перечисленные в пакете параметров, т.е. с учетом пакета параметров std :: is_base_of ()? template <typename Type,...
1284 просмотров

Каков наилучший способ переименования (псевдоним/вперед) функции в С++?
(Я ограничу этот вопрос С++ 11, так как считаю, что в С++ 98 нет общего способа сделать это). Предположим, у меня есть сложный (с точки зрения подписи) набор функций template и/или перегруженных функций, и я хочу использовать эти функции точно...
3061 просмотров

Полиморфизм C ++ с переменным параметром функции
Я поделюсь с вами проблемой, которая возникла у меня с классом, использующим параметры вариативной функции. Это класс Thread, показанный в следующем коде. Это оболочка std :: thread для использования шаблона функции. Я хотел использовать...
2571 просмотров

Добавление обратного вызова в класс вариативного шаблона - невозможно?
Я пытаюсь создать шаблонный класс, который имеет метод Add, который прикрепляет обратный вызов функции к классу, поэтому, когда я могу вызвать его оттуда с указанным списком аргументов. Он отлично компилируется, за исключением части, где я вызвать...
1614 просмотров

перебор параметров типа шаблона с переменным числом аргументов
У меня есть такой шаблон функции: template <class ...A> do_something() { // i'd like to do something to each A::var, where var has static storage } Я не могу использовать Boost.MPL . Не могли бы вы показать, как это сделать без...
11376 просмотров
schedule 28.08.2023

Шаблоны Variadic: создание кортежа из пар смежных элементов
Моя цель - сделать что-то, чтобы, например, pairs<1,2,3,4>() Имеет возвращаемый тип std::tuple<some_other_type<1,2>, some_other_type<2,3>, some_other_type<3,4>> Мне интересно, возможно ли это вообще с...
1000 просмотров
schedule 16.12.2022

Как хранить вариативные аргументы шаблона?
Можно ли как-то сохранить пакет параметров для последующего использования? template <typename... T> class Action { private: std::function<void(T...)> f; T... args; // <--- something like this public:...
30798 просмотров
schedule 11.02.2022

Какая самая эффективная функция проверки простых чисел с хвостовой рекурсией известна?
Я экспериментировал с метапрограммированием до этого момента: // compiled on Ubuntu 13.04 with: // clang++ -O3 -ftemplate-depth-8192 -fconstexpr-depth=4096 -std=c++11 -stdlib=libc++ -lcxxrt -ldl compile-time-primes.cpp -o compile-time-primes //...
633 просмотров

Создание экземпляров из вариативных шаблонов
Я пытаюсь придумать класс, который позволяет создавать несколько типов с помощью вариативных аргументов шаблона, но во время компиляции я получаю ошибки: http://ideone.com/nDWBET #include <list> #include <memory> struct...
404 просмотров
schedule 24.10.2022

CRTP + вариативный шаблон + извлечение параметров подкласса CRTP
В настоящее время я реализую общий класс событий. Обработчики событий имеют параметр отправителя и переменное количество аргументов событий. Итак, объявление класса событий выглядит следующим образом: template<typename SENDER , typename......
686 просмотров
schedule 29.11.2022

Как использовать std::enable_if для условного выбора вариационного конструктора?
Я пытаюсь создать класс, который должен наследовать конструкторы от других классов, но без наследования от самих этих классов. В какой-то момент во время инициализации моего класса я хочу использовать совершенную переадресацию для создания объекта...
5434 просмотров
schedule 08.02.2024

Typedef или переименовать пакеты в вариативных шаблонах
Как изменить имя пакета в вариативном шаблоне (без макросов): template <class _T, class... _Rest> class MyTuple : public MyTuple<_Rest...> { // Yes. It's my tuple. public: typedef _T T; // Ok! typedef _Rest Rest; // Problem!...
1717 просмотров
schedule 26.07.2023

Ошибка с шаблоном вариадиака: необходимо расширить пакет параметров
Вот функция шаблона с переменным числом аргументов, которую я написал: template<class Container, class Value, class... Args> Value& insert(Container& c, Args&&... args) { c.emplace_back(args); return c.back(); }...
16391 просмотров
schedule 07.07.2022