了解 constexpr 引用及其初始化
與 const 引用不同,constexpr 引用保證它們在程式執行開始之前被初始化。但是,它們的定義和初始化可能受到特定約束,如提供的程式碼所示。
要有效定義和初始化 constexpr 引用,請考慮以下事項:
1。綁定到全域變數:
與可以綁定到運行時初始化的局部變數的 const 引用不同,constexpr 引用必須綁定到具有靜態儲存持續時間的全域變數或物件。這是因為 constexpr 引用類似於取得變數的位址,而局部變數的位址不是常數。
2.靜態儲存持續時間的範例:
<code class="cpp">#include <iostream> constexpr int x{20}; // Global variable with static storage duration constexpr int& f() // Function returning a constexpr reference to a global variable { return x; } int main() { constexpr int& z = f(); // Initialize constexpr reference with a global constexpr function std::cout << z << std::endl; // Access the referenced value }</code>
在此範例中,我們定義一個具有靜態儲存持續時間的全域變數x 和一個回傳對其的constexpr 所引用的constexpr 函數f()。在 main 內部,我們建立一個 constexpr 參考 z,並使用 f() 傳回的值進行初始化。此初始化是有效的,因為 x 的值在編譯時已知。
以上是如何在 C 中初始化 constexpr 引用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!