Вопросы по теме '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 просмотров
schedule
07.01.2023
Использование вариативного шаблона в качестве параметра как для класса, так и для метода
Мой вопрос касается следующего фрагмента кода:
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 просмотров
schedule
13.05.2022
Как использовать вариативный макрос для назначения указателя функции
Я пытаюсь написать вариативный макрос на 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 просмотров
schedule
13.06.2023
Как передать невариативные значения в fmt::format?
Я играю с великолепной библиотекой fmt C++ для более изящного форматирования строк.
И я хотел бы передать список непеременных аргументов в fmt::format . Это может быть std::vector , std::string или что-то еще, но оно всегда будет...
2036 просмотров
schedule
05.12.2022
Передача аргументов в другую функцию с переменным числом аргументов
Есть ли вообще способ компилировать этот код и работать так, как задумано, не прибегая к va_list материалам?
#include <iostream>
void fct(void)
{
std::cout << std::endl;
}
void fct(int index, int indexes...)
{
std::cout...
219 просмотров
schedule
17.12.2022
вложенные списки инициализаторов, заключенные в фигурные скобки
Мой код генерирует синтаксическую ошибку с 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