从匿名临时传递数据指针

时间:2013-12-18 09:38:02

标签: c++11

此代码符合C ++ 11标准吗?

功能原型: void foo(double[] arr);

来电者:foo(std::vector<double>{0.0, 1.0, 2.0}.data())

详细说明:我正在做的是创建匿名临时 std::vector<double>,提取数据(double*)并将其传递给旧式函数{ {1}}。 (foo事先知道foo的大小。但它是否适用于每个召集会议?我担心如果在我完成内容之前从调用堆栈中弹出向量,arr指针可能会失效。

1 个答案:

答案 0 :(得分:3)

这很好;在评估完整表达式(12.2p3)时,临时表会被销毁,因此vector至少会在调用foo期间生效。