我正在二維陣列,包含多個靜態數組(短褲)動態數組:如何將constexpr變量設置爲普通變量?
constexpr unsigned char constColumnMax = columnMax; //wrong
using column = std::array<short, constColumnMax>;
column * row = new column[rowMax];
row[0][0] = 10;
哪裏columnMax
是具有由先前功能,列定義品牌設置的值的無符號字符up靜態數組,&行數組是一個動態數組列。
這個問題是,我的代碼設置constexpr,constColumnMax
等於columnMax
是錯誤的。然而,我把它放入std::array<>
的變量必須是constexpr類型。
我在這裏死路一條。我能想到的唯一的事情就是使用循環來增加constColumnMax
,由於顯而易見的原因,這不起作用。任何幫助你們可以給予不勝感激。
所以我別無選擇,只能使用一個向量? – Larrimus
@Larrimus非常。函數也可以是'constexpr',所以如果你可以在編譯時知道函數中的所有數據,那麼你可以使用'std :: array'。但我猜你的情況不可能。 –
嗯...我試圖創建一個數組的向量:'std :: vector>'我收到同樣的錯誤,表示'columnMax'必須有一個常量值。 –
Larrimus