我希望创建一个运算符 += 的模板,它将向向量添加值。我一直在修改参数包,但它对我不起作用(我想我作为 C++ 的新手做错了什么)。基本上我想用这样的代码实现添加到向量末尾的效果:
std::vector<int> v;
v += 3, 4, 5, 6;
如您所见,我想通过运算符覆盖向向量添加多个值。这是我现在拥有的代码:
template<typename T, typename... Ts>
void operator+=(std::vector<T> v1, Ts const &... ts) {
v1.push_back(ts);
}
我收到一个错误,该表达式包含意外的参数包。如果不是参数包,那么如何通过覆盖运算符将这些值添加到向量中?
提前致谢