-1

我目前正在尝试围绕 valarray 对象实现一个类,但在尝试运行时出现异常:

class TestClass
{
    public:
    valarray<int> va;
    TestClass() { va.resize(5, 1); }
    slice_array<int>& get_slice()
    {
        return va[slice(0, 3, 2)];
    }
};

//In main():

TestClass obj;

slice_array<int>& ref = obj.va[slice(0,3,2)];

ref = -1;               //OK
obj.get_slice() = -1;   //Throws exception

这两个任务不是一回事吗?

4

1 回答 1

0

我自己解决了:似乎 valarray[slice(int, int, int)] 不是左值或者是临时的,所以不允许用这样的对象初始化引用(奇怪的是,VS2012 允许这样做一些案例)。

于 2016-01-29T04:24:36.357 回答