Описание тега variadic

В информатике оператор или функция являются вариативными, если они могут принимать различное количество аргументов; то есть, если его арность не зафиксирована.
3 ответа

Итерировать по C++ вариационному шаблону

У меня есть следующее: template<typename FIRST, typename SECOND> Sender *createSenderChain() { return new FIRST(new SECOND()); } Можно ли сделать шаблон разнообразным: template<typename FIRST, typename ...Args> Sender *createSenderChain(…
04 апр '17 в 10:57
0 ответов

Кортежи и ostreams: когда код ломается

При работе с кортежами и попытке вывести их значения на консоль с помощью ostream вы не можете напрямую использовать цикл для этого, поскольку вы можете получить доступ только к элементам кортежа из std::get, который ожидает постоянную времени компи…
08 апр '18 в 23:07
1 ответ

Ltac: необязательные аргументы тактики

Я хочу сделать тактику Ltac в coq, которая будет принимать 1 или 3 аргумента. Я читал о ltac_No_arg в LibTactics модуль, но если я правильно понял, мне пришлось бы использовать мою тактику с помощью: Coq < mytactic arg_1 ltac_no_arg ltac_no_arg. …
30 июн '17 в 07:10
2 ответа

Параметры шаблонов C++ Variadic для линейной иерархии

Можно ли сгенерировать линейную иерархию из параметров вариационного шаблона? Например: GenLinearHierarchy<A,B,C,D,...> linHierarchy; Создает иерархию, в которой A -> B -> C -> D -> ... -> Пусто (где символ -> обозначает наследование). Где пар…
10 апр '14 в 01:49
2 ответа

Применение функции к произвольно длинному списку аргументов

Я хочу создать функцию apply, которая принимает функцию с произвольным количеством аргументов, а также список целых чисел и возвращает результат функции (где каждое целое число в списке является аргументом по порядку. Я думал что-то вроде: apply :: …
1 ответ

Пакет параметров с совпадением типа предыдущего параметра

Поэтому я использую простой пример, чтобы попытаться понять шаблоны с переменным числом аргументов и некоторые приемы tmp. Пример состоит из класса Timer, у которого есть метод toc(). Методы toc используются для остановки таймера и вызова функции, к…
17 сен '18 в 22:15
1 ответ

C - функция Variadic компилируется, но выдает ошибку сегментации

У меня есть переменная функция в C для записи в файл журнала, но как только она вызывается, она дает ошибку сегментации в заголовке. В основном процессе вызов имеет следующий формат: mqbLog("LOG_INFORMATION",0,0,"Connect",0,"","Parameter received");…
20 дек '16 в 23:02
1 ответ

Извлечение типов элементов из пакета параметров

Я хотел бы определить функцию, которая принимает произвольное количество контейнеров и это число минус один аргумент с соответствующими значениями value_types всех, кроме последнего контейнера. Я могу легко извлечь value_type из последнего контейнер…
3 ответа

Variadic макро предупреждение

В C++, variadic макросы require at least one argument for the '...', Рассмотрим функцию: FOO(a, b, ...); Что мне делать, если я хочу, чтобы оба этих вызова были правильными и без предупреждений? FOO(5, 4, "gamma"); FOO(5, 4); Я использую --pedantic …
16 апр '17 в 08:55
5 ответов

Передавая переменное число аргументов

Можем ли мы передать переменное число аргументов функции в c?
01 окт '10 в 03:01
1 ответ

Вариант реализации (вариативный шаблон) C++

Я пытаюсь реализовать вариант класса, но у меня проблема с рекурсивной функцией: template<typename Visitor, typename... Types> class VariantVisitor; template<typename... Types> class Variant { template <typename V, typename... types&g…
26 фев '15 в 01:12
1 ответ

Может ли макрос C variadic рекурсивно расширяться ##__VA_ARGS__?

макрос variadic, упомянутый о VA_ARGS для gcc. Я сделал следующий эксперимент. #define EVAL(f,...) eval(f,build_args(args,__VA_ARGS__ , args_end)) А также EVAL(f,a) // => eval(f,build_args(args,a, args_end)) EVAL(f,a,b) // => eval(f,build_arg…
28 май '15 в 07:13
2 ответа

Ограничение количества аргументов в вариационной функции

Итак, я работал над классом функции, и по умолчанию я могу сделать это, и это работает: int main(){ function f("x^2+1"); cout<<f(3)<<endl; return 0; } "Предположим, правильно включает и пространства имен" В любом случае, я хотел бы иметь…
31 янв '15 в 02:47
0 ответов

Как получить доступ к аргументам, когда переменный макрос вызывает функцию

#define myprintf(m_l, fmt...) \ my_debug(instance, \ (uint8)DBG_TRACE_DETAIL, fmt) 'myprintf' gets called somewhere in the code like- myprintf(TRACE_LEVEL_6, "Doing %s\n", __FUNCTION__); Ниже приведена реализация my_debug, как получить доступ к аргу…
18 дек '18 в 11:35
6 ответов

C++11 переменное число аргументов, тот же конкретный тип

Вопрос прост: как реализовать функцию, принимающую переменное число аргументов (подобно шаблону с переменным числом аргументов), однако, где все аргументы имеют одинаковый тип, скажем, int. Я думал о чем-то похожем на это; void func(int... Arguments…
02 авг '13 в 13:00
1 ответ

Как пакет параметров шаблона может иметь другие конечные аргументы?

В проекте стандарта C++14 [temp.param]/11 гласит: Если параметр шаблона основного класса или псевдонима шаблона является пакетом параметров шаблона, он должен быть последним параметром шаблона. Если вы попытаетесь скомпилировать следующий шаблон, то…
04 сен '18 в 23:37
1 ответ

Префикс каждого параметра в макросе variadic, который указывает на другой макрос

Давайте предположим, что у меня есть эти макросы с префиксом ATTRIB_ #define ATTRIB_A "a" #define ATTRIB_B "b" #define ATTRIB_C "c" Я хотел бы иметь возможность использовать макрос Variadic, который распаковывает каждый данный параметр, а затем преф…
03 апр '17 в 20:58
2 ответа

Как заполнить va_list

У меня проблемы с поиском ответа на мою "проблему". Я создал функцию, которая принимает различное количество целых чисел ('findMinVal(int x, ...)') и возвращает наименьшее число во всех сделанных вызовах. сейчас моя программа получает аргументы прям…
01 июн '13 в 12:41
2 ответа

Можно ли создать пакет параметров?

Рассмотрим следующий псевдокод: template<class... T> struct worker : unique<T...>::type...{}; struct x{}; struct y{}; struct z{}; Можно ли написать шаблон unique так что он генерирует пакет параметров, состоящий только из уникальных типо…
05 июн '12 в 06:09
2 ответа

Как рассчитать сумму, используя переменную универсальную лямбду в C++?

Я хотел написать общую функцию суммы, подобную следующей, но не в синтаксисе шаблона, а в лямбда-синтаксисе: template<typename T> auto Sum(T lastSummand) { return lastSummand; } template<typename T, typename... Ts> auto Sum(T firstSumman…
31 дек '16 в 15:31