我正在尝试使用variadic函数创建包装器。但是,我在Visual Studio 2013中从operand of sizeof may not be a function
收到func_t func = va_arg(args, func_t);
错误。不允许在C ++中嵌套可变参数函数?或者还有其他解决方案来完成这项工作吗?
(我跳过A :: Outerfunc的冗余部分)
int A::Outerfunc(int nargs, ...) {
if (nargs != 3) {
cout << "Wrong argument number: " << std::endl;
exit(1);
}
va_list args;
va_start(args, nargs);
typedef double func_t(int nargs, ...);
double *f = va_arg(args, double *);
func_t func = va_arg(args, func_t);
double *fprime = va_arg(args, double *);
va_end(args);
return 0;
}
答案 0 :(得分:3)