是valarray <valarray <内置类型=“”>&gt;安全吗?</的valarray <内置>

时间:2013-12-13 05:51:58

标签: c++

在阅读此http://gcc.gnu.org/ml/libstdc++/2000-q1/msg00123.html之后,似乎使用valarray的valarray并不能保证标准是安全的。但是当我在valarray中读取T的需求列表(http://en.cppreference.com/w/cpp/numeric/valarray)时,似乎T = valarray <built-in type>满足所有这些要求。 valarray<valarray<built-in type> >安全吗?

1 个答案:

答案 0 :(得分:7)

不,这不安全。

特别是valarray在某些情况下可以抛出 1 (例如,参见§26.6.1/ 6),但如果你放入valarray的类型抛出(永远),你得到未定义的行为(§26.2/ 2)。

无论如何,这几乎是不必要的。 valarray支持通过切片进行2D寻址。


<子> 注意:允许扔掉,但从不直接要求扔掉。同时,非const valarray上的许多操作都需要返回整个新的valarray,这涉及动态分配。如果失败,似乎没有什么选择,只能抛出异常。