![](/img/trans.png)
[英]Is it beneficial anymore to unroll loops in C++ over fixed-sized arrays?
[英]Fixed-sized C arrays with template parameter-dependent sizes
我正在使用模板化類,我想包括固定大小的數據數組,其大小取決於template參數。 一個簡化的例子是
template<int D>
class Foo
{
private:
int m_array[D*(D+1)];
};
可以理解的是,一般來說,可變大小的C數組會被皺眉,但在這里它們可能是合理的,因為D
很小,很不錯,並且可以清楚地知道m_array
擁有多少個值(並且它不能更改大小)。 我的問題是
std::vector
並在構造函數中設置大小,我認為這會使代碼不太清晰。 最好使用C ++ 11的std::array
,從而將上面示例中的相關行更改為std::array<int,D*(D+1)> m_array;
? 您的示例不是可變長度數組 ,就像C99中存在的那樣。 在那里,僅在運行時才知道數組的大小。
在這里,您可以使用編譯時常量來設置數組的大小。 這樣做沒有問題。 出去享受吧。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.