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

Довольно печать std :: tuple
Это продолжение моего предыдущего вопроса о красивых контейнерах STL для что нам удалось разработать очень элегантное и полностью общее решение. На этом следующем шаге я хотел бы включить красивую печать для std::tuple<Args...> с...
28208 просмотров
schedule 10.07.2022

Моделирование шаблонов с переменным числом аргументов в C#
Есть ли известный способ имитации функции вариативного шаблона в С#? Например, я хотел бы написать метод, который принимает лямбду с произвольным набором параметров. Вот в псевдокоде, что я хотел бы иметь: void...
15910 просмотров
schedule 21.09.2022

В чем существенная разница между этими двумя вариативными функциями?
Меня разочаровала простая функция шаблона с переменным числом аргументов: constexpr size_t num_args () { return 0; } template <typename H, typename... T> constexpr size_t num_args () { return 1 + num_args <T...> (); } int...
164 просмотров
schedule 21.04.2022

рекурсивный вариативный шаблон для вывода содержимого пакета параметров
Как можно создать рекурсивный вариативный шаблон для вывода содержимого пакета параметров? Я пытаюсь с этим, но он не компилируется: template <typename First, typename ...Args> std::string type_name () { return...
21793 просмотров

Как я могу перебирать упакованный список аргументов вариативного шаблона?
Я пытаюсь найти способ перебора списка аргументов вариативного шаблона пакета. Теперь, как и во всех итерациях, вам нужен какой-то способ узнать, сколько аргументов находится в упакованном списке, и, что более важно, как индивидуально получить данные...
61846 просмотров
schedule 11.12.2021

Возможны ли геттеры без шаблонов в вариативных классах контейнеров шаблонов?
Насколько я могу судить, гипотетический класс кортежа шаблона с переменным числом аргументов должен использовать геттеры с параметрами шаблона. int MyInt = MyTuple.Get<int>(0); Это неудобно и может привести к ошибке. Я не могу не...
694 просмотров
schedule 27.08.2022

Неоднозначная перегрузка вариативных шаблонов без аргументов
Связанный: Неоднозначная перегрузка при доступе к шаблонным функциям без аргументов с переменными параметрами Простая функция шаблона с переменным числом аргументов не может создавать экземпляры Почему эта вариационная функция...
1863 просмотров

Как распаковать вариативный параметр шаблона с числовой последовательностью?
Как (или можно ли) распаковать пакет параметров с числовой последовательностью? Например, template <typename C, typename... T> C* init_from_tuple(bp::tuple tpl) { return new C{bp::extract<T>("magic"(tpl))...}; // <-- } до...
2001 просмотров
schedule 10.06.2023

Параметры шаблона шаблона и вариативные шаблоны с gcc 4.4
Я использую gcc 4.4 на сжатии Debian. Рассмотрим следующий код. #include <map> #include <string> using std::map; using std::string; // Args lets the user specify additional explicit template arguments template <typename T,...
7846 просмотров

Объединение вариативных шаблонов вместе
Как будет выглядеть X в следующем коде, если он будет преобразован для использования вариативных шаблонов C++11 и должен поддерживать произвольное количество аргументов шаблона? template<int OFFSET> struct A { enum O { offset = OFFSET };...
226 просмотров

Перебор вариативных аргументов шаблона в обратном порядке
Следующий код работает, если я вручную изменяю порядок переданных ему аргументов шаблона: template<typename HeadTag, typename... TailTag> struct Mapped_scope_deep : public Mapped_scope_deep<TailTag...> { typedef typename...
1464 просмотров
schedule 17.09.2022

Как получить типы аргументов указателя функции в вариативном классе шаблона?
Это продолжение этой проблемы: Универсальный функтор для функций с любым аргументом список У меня есть этот класс функтора (полный код см. ссылку выше): template<typename... ARGS> class Foo { std::function<void(ARGS...)> m_f;...
21304 просмотров

Как создать декартово произведение списка типов?
Я хотел бы создать перекрестный продукт списка типов, используя вариативные шаблоны. Вот что у меня есть до сих пор: #include <iostream> #include <typeinfo> #include <cxxabi.h> template<typename...> struct type_list...
3442 просмотров
schedule 20.05.2023

Передача переменного количества ссылок на массивы в функцию с вариативными шаблонами
Я знаю, как написать вариативную шаблонную функцию, которая принимает переменное количество аргументов: template<int I, typename... Rest> void f() { // whatever } и я знаю, как написать шаблонную функцию, которая принимает ссылку на...
519 просмотров
schedule 11.04.2023

С++ 11 вариативный параметр std::function
Функция с именем test принимает std::function<> в качестве параметра. template<typename R, typename ...A> void test(std::function<R(A...)> f) { // ... } Но, если я сделаю следующее: void foo(int n) { /* ... */ } //...
21883 просмотров

В C++11 … считается оператором?
Мне было интересно, считается ли … оператором в C++11. И если это так, каков его приоритет? Например, рассмотрим этот довольно плохой пример и предположим, что ... является оператором. template<typename T, typename...Args> void foo(T...
186 просмотров

Разрешение характеристик типов шаблонов Variadic
Предположим, у меня есть перечисление, и я хочу, чтобы каждое значение перечисления было связано с определенным типом. Скажем, стандартный тип — double, и если я хочу, чтобы он был чем-то другим, мне нужно указать это явно. В1. Является ли это...
518 просмотров

Вариативные шаблоны C ++ 11: значение массива индексов по умолчанию
Вот короткая программа для печати кортежей с использованием кода, адаптированного из ответов Йоханнеса Шауба - litb и Люк Дантон . #include <iostream> #include <tuple> template<int ...> struct seq { }; template<int N, int...
1113 просмотров
schedule 28.04.2022

Проектирование на основе политик с шаблонами Variadic
У меня есть набор однородных классов политик, которые я хочу передать в качестве политик классу шаблона PolicyDrivenClass, который принимает некоторое неизвестное количество параметров шаблона политики. Каждая политика реализует функцию «имени», и...
1353 просмотров

Получить тип лямбда-параметров в пакете аргументов шаблона
Я часами искал ответ, но ничего не нашел ... Итак, вот моя проблема: template<typename Signature> struct wrapper; // (1) template<typename Ret, typename... Args> struct wrapper<Ret(Args...)> // (2) { function static...
525 просмотров
schedule 04.02.2024