gpt4 book ai didi

c++ - 未指定的函数参数

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:49:27 25 4
gpt4 key购买 nike

GManNickG's answer他使用了符号:

template <typename>
static no& test(...);

最初我认为这只是“insert blah”的简写,用户必须替换他们自己的类型:

template<typename>
static no& test(int);

但是,在没有任何更改的情况下在编译器中对其进行测试后,它成功了!此外,在原始问题的上下文中使用 ... 与显式 int 相比,重载解析的行为符合预期。

这在 C++03 中叫什么/我应该如何解释这段代码?它看起来很接近 C++11 的可变参数模板,但两者之间有一些明显的区别。

最佳答案

是的,省略号指定了一个可变参数函数(可变长度参数列表)。您可以使用 va_startva_argva_end 宏来“提取”参数。但是,您需要一个初始参数;他们需要一个起点来开始从堆栈中获取参数(省略号前的 arg + sizeof(arg))。

/* sum a bunch of ints */
int sum(int arg_cnt, ...) {
va_list ap;
va_start(ap, arg_cnt);
int sum = 0;
for(int i = 0; i < arg_cnt; ++i) {
sum += va_arg(ap, int);
}
va_end(ap);
return sum;
}

关于c++ - 未指定的函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18069638/

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