創(chuàng)新互聯www.cdcxhl.cn八線動態(tài)BGP香港云服務器提供商,新人活動買多久送多久,劃算不套路!
這篇文章主要講解了總結C++17的新特性,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。
C++17編譯器版本:GCC 7.1、Clang 5.0
__cplusplus:201703L
編譯選項:-std=c++17
1 關鍵字擴展constexpr使用范圍,可用于if語句中,也可用于lambda表達式中。
例子1:
#includetemplate constexpr void foo() { //在編譯期進行判斷,if和else語句不生成代碼 if constexpr (ok == true) { //當ok為true時,下面的else塊不生成匯編代碼 std::cout << "ok" << std::endl; } else { //當ok為false時,上面的if塊不生成匯編代碼 std::cout << "not ok" << std::endl; } } int main() { foo ();//輸出ok,并且匯編代碼中只有std::cout << "ok" << std::endl;這一句 foo ();//輸出not ok,并且匯編代碼中只有std::cout << "not ok" << std::endl;這一句 return 0; }