直接在函数调用的参数列表中初始化向量

时间:2015-03-07 18:01:53

标签: c++ vector

我认为这是一项简单的任务,但我还没有找到解决方案:

这有效:

vector<A*> v = vector<A*>{a1, a2};
b->add(v);

这不编译(方法无法解决):

b->add(vector<A*>{a1, a2});

添加签名:

void add(vector<A*>& v);

我做错了什么?

1 个答案:

答案 0 :(得分:3)

add需要vector<A*>&。临时数不能绑定到非常量左值参考。如果add未修改其参数,您可以将签名更改为void add(const vector<A*>&),以便传递临时值。