gpt4 book ai didi

c++ - C++ 中的嵌套可变参数函数

转载 作者:行者123 更新时间:2023-11-28 00:31:42 24 4
gpt4 key购买 nike

我正在尝试使用可变参数函数制作包装器。但是,我在 Visual Studio 2013 中从 func_t func = va_arg(args, func_t); 得到了 operand of sizeof may not be a function 错误。在 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;
}

最佳答案

你只需要让 func_t 成为一个指向函数的指针,而不是一个函数....

typedef double (*func_t)(int nargs, ...);

参见 http://ideone.com/cF48S7

关于c++ - C++ 中的嵌套可变参数函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22650023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com