在C 11 中,創建N 個元素的constexpr 數組並不像該語言的更高版本中那麼簡單。雖然 constexpr 數組是在 C 11 中引入的,但它們的功能是有限的,並且不可能使用與 C 14 及更高版本中相同的語法創建可變長度的 constexpr 數組。
但是,使用一些先進的技術和constexpr 函數,可以在 C 11 中實現類似的結果。具體方法如下:
#include <iostream> template<int N> struct A { constexpr A() : arr() { for (auto i = 0; i != N; ++i) arr[i] = i; } int arr[N]; }; int main() { constexpr auto a = A<4>(); for (auto x : a.arr) std::cout << x << '\n'; }
在此範例中,我們定義constexpr 函數 A
在 main 函數中,我們建立 A 的實例;並列印陣列的值。由於數組是 constexpr,編譯器可以在編譯時確定其值,確保不會對數組執行運行時計算。
這種方法允許我們在 C 11 中建立 constexpr 數組,即使語法比該語言的更高版本更複雜。
以上是如何在 C 11 中建立包含 N 個元素的 Constexpr 陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!