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

Устранение неоднозначности вызовов функций без аргументов в вариативных иерархиях классов
Я пытаюсь предоставить пользователям класса (MyGizmo ниже), который является производным от вариативной иерархии (ObjGetter ниже), с простым, лаконичным способом однозначного вызова функции-члена, которая не принимает аргументов (check() ниже). Я...
417 просмотров
schedule 06.02.2023

кортеж как аргумент функции
Я немного смущен, если это возможно, как использовать вариативный кортеж в качестве аргумента в функции и как его инициализировать. template <typename T, Arg ...> void foo (int a, std::tuple<T, sizeof(Arg)> TupleTest); ......
6139 просмотров
schedule 28.06.2022

Обертка любой API-функции
Я оборачиваю Windows API и хочу сделать проверку ошибок простой и полезной. В настоящее время у меня есть глобальный объект ошибки с функцией set для обработки новой ошибки. Функция set принимает четыре аргумента: bool Error::set (const int...
846 просмотров
schedule 24.05.2022

Чистый способ хранения функции и ее аргументов (произвольного типа, с произвольным числом)
Для библиотеки я бы хотел, чтобы функция принимала другую функцию и ее аргументы, а затем сохраняла их все для последующего вызова. Аргументы должны допускать любое сочетание типов, но функции должны возвращать только void. Что-то вроде этого:...
1978 просмотров
schedule 21.03.2023

Черта типа С++ 11, чтобы различать класс перечисления и обычное перечисление
Я пишу псевдоним шаблона продвижения, похожий на boost::promote, но для C++11. Цель этого состоит в том, чтобы избежать предупреждений при извлечении аргументов из переменных функций. например template <typename T> std::vector<T>...
4015 просмотров

Использование вариативного шаблона в качестве параметра как для класса, так и для метода
Мой вопрос касается следующего фрагмента кода: template <class...T> class A { public: template <class...S> static void a() { } }; template <class...T> class B { public:...
905 просмотров
schedule 18.07.2023

Ошибка компиляции макроса c ++ Variadic
После вопроса о переполнении стека: «Макросы с переменным числом аргументов с нулевыми аргументами и запятыми», я попробовал: #define MAKE_TEMPLATE(...) template <typename T, ## __VA_ARGS__ > MAKE_TEMPLATE() struct Testing{};...
374 просмотров
schedule 09.07.2023

Многоключевая карта с использованием вариативных шаблонов
Я пытаюсь реализовать карту с разными ключами доступа, используя вариативные шаблоны в С++. Что я хочу получить, так это заставить работать такой синтаксис: MultikeyMap<int, double, float> map1; // int and double are keys, float is value...
1171 просмотров

Как использовать вариативный макрос для назначения указателя функции
Я пытаюсь написать вариативный макрос на C (не на C++, поэтому я не могу использовать Boost), который позволяет назначать указатели функций, например: #define INIT_METHODS(name,...) typedef struct{ void (*method1)(); }data1_t; typedef...
1372 просмотров
schedule 06.07.2022

Макрос Variadic в С++ не работает должным образом
Я пытаюсь разрешить printf() как вызов функции журнала в моем приложении C++. Я нашел эту ссылку , которая в значительной степени объясняет, что я хочу делать. Однако мне не удалось заставить эту концепцию работать так, как хотелось бы, в моем...
77 просмотров
schedule 10.06.2022

Передача функции с переменным числом аргументов в качестве аргумента
Рассмотрим этот рабочий код: #include <iostream> #include <utility> #include <array> template <typename... Args> void foo (Args&&... args) { const auto v = {args...}; for (auto x : v) std::cout << x...
790 просмотров
schedule 26.02.2023

Функция, которая принимает функцию-предикат (возвращает логическое значение) и возвращает функцию-предикат с теми же параметрами
Итак, я хочу создать функцию negate , которая принимает некоторую функцию, которая возвращает логическое значение для некоторого списка аргументов, и возвращает функцию, которая принимает те же аргументы и выдает прямо противоположный логический...
5199 просмотров
schedule 25.09.2022

C ++ Шаблон с несколькими вариациями, не привязанный к аргументам функции
Я пытался использовать некоторые вариативные параметры шаблона, но меня быстро остановила ошибка, которую мне не удалось понять. #include <tuple> template <typename T> struct Foo { typedef T type; }; // return a tuple of pair of...
950 просмотров
schedule 08.04.2022

Как написать общую вариативную лямбду, которая отбрасывает свои параметры?
Я хочу написать лямбду, которая принимает произвольное количество аргументов по универсальной ссылке и полностью их игнорирует. Очевидным методом было бы использование синтаксиса универсального пакета параметров с переменным числом переменных и...
576 просмотров
schedule 11.06.2022

С++ - проверьте, являются ли все аргументы шаблона степенью 2
Я пытаюсь найти простой способ проверить, все ли параметры, переданные в качестве аргументов шаблона, имеют степень двойки. Я нашел битхак на веб-сайте, и у меня есть это: constexpr bool isPowerOf2(size_t value){ return !(value == 0) &&...
564 просмотров
schedule 30.03.2023

Вариадная функция
Я пытаюсь написать класс для представления тензора Tensor и хотел бы предоставить синтаксис tensor(i, j) для двумерного тензора, tensor (i, j, k) для трехмерного тензора и так далее. Что я хочу знать, так это то, существует ли безопасный...
547 просмотров

Как передать невариативные значения в fmt::format?
Я играю с великолепной библиотекой fmt C++ для более изящного форматирования строк. И я хотел бы передать список непеременных аргументов в fmt::format . Это может быть std::vector , std::string или что-то еще, но оно всегда будет...
2036 просмотров

Передача аргументов в другую функцию с переменным числом аргументов
Есть ли вообще способ компилировать этот код и работать так, как задумано, не прибегая к va_list материалам? #include <iostream> void fct(void) { std::cout << std::endl; } void fct(int index, int indexes...) { std::cout...
219 просмотров

вложенные списки инициализаторов, заключенные в фигурные скобки
Мой код генерирует синтаксическую ошибку с GCC: src/main.cpp: In function ‘int main()’: src/main.cpp:95:4: error: could not convert ‘{{"enum", E_PRINT}, {"string", "setup"}, {"object", {{"double", 3.1415926535897931e+0}, {"long", 1235813l}}}}’...
727 просмотров
schedule 07.10.2022

структурированные аргументы как вариативный шаблон
У меня есть метод, которому нужны два параметра: псевдоним (строка) и объект (любого типа). Теперь я хотел бы иметь метод (шаблон), принимающий n из этих пар; Синтаксис должен выглядеть так: append ( { "first", int { 3 } }, { "second",...
81 просмотров
schedule 21.09.2022