返回对 slice_array 的引用
Posted
技术标签:
【中文标题】返回对 slice_array 的引用【英文标题】:Returning reference to 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
这两个任务不是一回事吗?
【问题讨论】:
【参考方案1】:我自己解决了: 似乎 valarray[slice(int, int, int)] 不是左值或者是临时的,因此不允许使用这样的对象初始化引用(奇怪的是,VS2012 在某些情况下允许这样做)。
【讨论】:
以上是关于返回对 slice_array 的引用的主要内容,如果未能解决你的问题,请参考以下文章