直接在函数调用的参数列表中初始化一个向量
Initialize a vector directly in parameter list of function call
我认为这是一个简单的任务,但我还没有找到解决方案:
这个有效:
vector<A*> v = vector<A*>{a1, a2};
b->add(v);
这个编译不通过(方法无法解决):
b->add(vector<A*>{a1, a2});
添加签名:
void add(vector<A*>& v);
我做错了什么?
add
取一个 vector<A*>&
。临时对象不能绑定到非常量左值引用。如果 add
不修改其参数,您可以将签名更改为 void add(const vector<A*>&)
,允许您传递临时变量。
我认为这是一个简单的任务,但我还没有找到解决方案:
这个有效:
vector<A*> v = vector<A*>{a1, a2};
b->add(v);
这个编译不通过(方法无法解决):
b->add(vector<A*>{a1, a2});
添加签名:
void add(vector<A*>& v);
我做错了什么?
add
取一个 vector<A*>&
。临时对象不能绑定到非常量左值引用。如果 add
不修改其参数,您可以将签名更改为 void add(const vector<A*>&)
,允许您传递临时变量。