我想要做的(使用 C++ lambda)实际上是:
std::vector<MyType> GetTheArray () {return something;}
const auto DoSomething = [](std::vector<MyType> & array)
{
//Some processing that involves either sorting the 'array' or setting temporary flags on the items
};
DoSomething (GetTheArray ());
这在标准 C++ 中似乎是不允许的,因为右值不能作为非常量引用传递。
我的问题:
1) 有没有办法使用类型转换来做到这一点,或者我必须创建一个临时变量来存储 GetTheArray () 的结果?
2) 有充分的理由在 C++ 中不允许这样做吗?
请注意,从“GetTheArray”返回的“something”是动态构造的数组,而不是存储值。