【问题标题】:Returning reference to slice_array返回对 slice_array 的引用
【发布时间】:2016-01-27 04:44:58
【问题描述】:

我目前正在尝试围绕 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

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

【问题讨论】:

    标签: slice valarray


    【解决方案1】:

    我自己解决了: 似乎 valarray[slice(int, int, int)] 不是左值或者是临时的,因此不允许使用这样的对象初始化引用(奇怪的是,VS2012 在某些情况下允许这样做)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-20
      • 2015-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-26
      相关资源
      最近更新 更多