2012-11-28 19 views
4

我正在寻找一个静态大小的valarray实现。静态大小的valarray实现

自己应该很容易实现它,但我需要constexpr操作(sum,subtraction等),这有点乏味/容易出错,所以我问这里是否有一个流行的实现。

如果我必须自己实现这个,那么在这种情况下,你认为表达式模板是否值得?

+0

什么是valarray? – Cameron

+1

@Cameron:[C++标准库中的类模板](http://en.cppreference.com/w/cpp/numeric/valarray)。 – ildjarn

+0

这对于Boost来说也是一个很好的补充。大量使用3和4尺寸的变体(代表3D坐标系)甚至可以用SIMD进行优化。 – gast128

回答

-1

arrayC++11

但是你必须自己实现算法。那是容易出错的吗?我不这么认为。无聊,也许吧。那么goo'ol'valarrayC++99?在那里你已经有了算法 - 但是,唉,它们不是constexpr

但你可以采取的执行,它环绕一个简单array专业化,和你有一个不容易出错的,令人兴奋的任务;-)

我本人很乐意与表达式模板来试试吧。但这取决于你必须在路上获得代码的速度。起初可能很难做到,但从长远来看更容易维护(对于自己和其他模板魔术师)。而且更有趣。

+2

我不确定为什么上面的内容被接受为答案,因为它似乎没有回答这个问题。我能够创建一个constexpr作为C风格的数组,但在C++中没有明显的方式。这似乎倒退了。我查看了数组,并没有解决创建一个可以在编译时评估的constexpr的问题,我知道至少有5种方法可以在运行时执行它,但是如果它在编译时在C中可行,那么看起来好像C++应该有一个特定的C++方法来做同样的事情。 Stroustrup继续在C上使用C++风格,但如果C++无法做到这一点,那么这种方法就会缩短。 – Astara