我们可以使用stdarg库中的...
表示法创建具有可变数量参数的函数。是否也可以通过引用传递这些参数?例如。也许是为了返回可变数量的输出值。
答案 0 :(得分:3)
您不能使用stdarg.h
,但如果您使用c ++功能,则可以。
我建议查看std::tie
的实现,作为标准库如何执行此操作的示例。
答案 1 :(得分:3)
对于<stdarg.h>
意义上的可变函数,不是真的(template varargs除外)。你不能打电话
void foo(int, ...);
作为
int x = 0, y = 1;
foo(2,x,y);
并期望x
和y
通过引用传递。但是,您可以传递他们的地址:
foo(2, &x, &y);
您可能可以使用可变参数模板技巧或预处理器宏技巧将FOO(x,y)
转换为foo(2,&x,&y)