всем привет.
всем привет.
к примеру, имеется у нас следующая функция:
template<typename... Args>
void func(const Args&... args) {}
используем мы ее как обычно:
func(1);
func(1,2);
тут проблем нет.
теперь давайте представим, что эта функция на самом деле декларирована так:
void func(ArgWrapper a0 = ArgWrapper(0,0), ArgWrapper a1 = ArgWrapper(0,0), ArgWrapper a2 = ArgWrapper(0,0), и т.д....) {}
а мы хотим ее использовать так:
struct type {
template<typename... Args>
static void method(const Args&... args) {
func(args...); // тут как записать?
}
};
т.е. проблема в том, что функция не моя, а мне нужно под нее подстраиваться.
вторая проблема в том, что у функции каждый аргумент (ArgWrapper) получает два значения которые описывают один аргумент.
в общем, последний пример, для ясности должен компилятором генерироваться так:
struct type {
template<typename... Args>
static void method(const Args&... args) {
func(
ArgWrapper(typeid(args[0]).name(), args[0]),
ArgWrapper(typeid(args[1]).name(), args[1]),
ArgWrapper(typeid(args[2]).name(), args[2])
);
}
};
не знаю как еще объяснить..
всем благодарен.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)