Ans*_*ang 3 c++ debugging variadic variadic-functions
我正在尝试 push_back 可变参数函数的参数,如下所示,但编译器说存在类型不匹配(由于参数是通用类型,而向量是 int)。我应该怎么做才能使参数兼容?
vector<int> x;
template<typename... Rest>
void foo(Rest... rest) {
x.push_back(rest...);
}
Run Code Online (Sandbox Code Playgroud)
在 C++14 及之前:
void foo(Rest... rest) {
int a[] = {0, (x.push_back(rest), 0)...};
static_cast<void>(a); // unused
}
Run Code Online (Sandbox Code Playgroud)
在 C++17 中:
void foo(Rest... rest) {
(x.push_back(rest), ...);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1300 次 |
| 最近记录: |