不能在常數表達式中使用constexpr 函數的函數參數
提供的程式碼片段顯示了constexpr 函數make_const 和函數make_const 與非常量表達式一起使用。這會引發錯誤,因為 t1 中的 i 不是常數表達式。
constexpr 函數,當給定常數參數時,可以在編譯時求值。但是,如果將非 constexpr 參數傳遞給 constexpr 函數,它不會使該參數成為常數表達式。
在下面的程式碼中,t1 是constexpr 函數,但t1 中的make_const(i) 是不是常數表達式,因為i 不是常數:
更新的程式碼顯示t1可以宣告為constexpr 且回傳make_const的結果:
但是,下面的程式碼仍然會導致錯誤,因為do_something
總而言之,constexpr 函數參數必須是常數表達式。如果傳遞非常量參數,它不會成為 constexpr 函數內的常數表達式。
以上是為什麼我不能在 `constexpr` 函數中使用函數參數作為常數表達式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!