Push_back 可变参数函数参数转换为向量?

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)

Ker*_* SB 7

在 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)