但是有了if constexpr就不用繞一下了,因為如果這編譯器選擇的分支太多,要繞的函式太多,最後都能就是放棄,我以前寫了一個容器類,本來是設計成儲存方式為棧,固定堆,可變堆,連結串列,是否支援Cap,Cap的增長方式,這些特性都是用模板
}修飾分支:if constexpr () {}其實你把constexpr修飾的東西看成元函式的變數就好理解了constexpr 的主要用處有拓寬「常量表達式」的範圍提供顯式「要求」表示式編譯時(compile-time)求值的方法為什麼要
// q 是一個指向整數的常量指標,constexpr 僅對指標有效p和q的型別相差甚遠,p是一個指向常量的指標,而q是一個常量指標,其中關鍵在於constexpr把它所定義的物件置為了頂層 const類似於int * const p =
com與你的想法相似,可以直接使用如果你確實需要依賴動態確定的大小,那麼編譯期是不可能做到的,即使放鬆到執行期標準也沒有可移植的方法來做(C的話倒是有可選的可變大小陣列來完成你的想法,部分C++實現例如g++似乎也實現了這個特性),可以考慮
}最後一行編譯時會報錯,因為模板引數和sizeof()函式都要求在編譯期確定fibonacci(argc)的值,但是argc只能在執行時確定