noexcept
void function() noexcept{}函數(shù)不拋出任何異常,減少異常處理的成本,提高運行效率
inline namespace temp{int xx = 0;
}
assert(xx==0);//無需名字空間限制,可直接訪問
namespace release{namespace v001{void func(){}
}
inline namespace v002{void func(){}
}
}
release::func();//調(diào)用v002版
多個子命名空間對外只暴露一個,很好的隔離版本間的差異,利于維護
三、強制枚舉類型c++中的枚舉是弱類型,相當于整數(shù),c++11/14可以用enum class/struct的形式聲明強類型引用,它不能被隱式轉(zhuǎn)換為整形,使用也必須使用類型名限定訪問枚舉值,就像類的靜態(tài)成員一樣
還使用char、int 等,指示枚舉使用的整數(shù)類型
enum class color:char{}//枚舉使用char類型存儲
enum {red=1,green=2,blue=3
};
assert(red == green-1);
int red = 1;
enum class color{...}
auto x = color::red;
auto y = red; //錯誤必須添加限定名
auto z = color::red -1; //錯誤不能隱式轉(zhuǎn)換成整形
四、屬性[[attribute]]標記編譯特征,指示編譯器做某種程度的優(yōu)化
[[deprecated]] int x = 0; //x已經(jīng)被廢棄
class [[deprecated]] demo{};//demo 已經(jīng)被廢棄
五、語言版本宏__cplusplus是個整形常數(shù)
199711L c++98/03
201103L c++11
201402L c++14
可用于條件編譯的判斷邏輯
#if __cplusplus< 201103L
#error ""
#endif
六、超長整形long long 至少是64位
LL/ll ULL/ull/uLL顯示說明整形是long long
auto a = 11111LL;
auto b = 2222222ULL;
七、原始字符串R"(…)"
string s = R"(this is a "\string\")";
cout<
還支持最多16個字符的delimiter,()兩邊必須相同,且不能是@ $ \等特殊字符
a = R"***(dark souls)***";
八、自定義字面值字面值需要重載"“函數(shù)名必須以_開頭
return_type operator”" _suffix(unsinged long long );
long operator"" _kb(unsigned long long v)
{return v * 1024;}
auto x = 2_kb;
assert(x==2*1024);實際值20148
c++14增加的自定義字面值
h/min/s/ms
auto t1 = 2min;//2分鐘
auto t2 = 30s;//30秒
auto s = "std string type"s;//標準字符串,不是秒
七、其他1、右尖括號
“>>“優(yōu)先解釋為模板,而不是按位右移
2、函數(shù)的默認模板參數(shù)
模板函數(shù)可以使用默認參數(shù)
3、增強聯(lián)合體
可以有構(gòu)造/析構(gòu)函數(shù)和成員函數(shù),但是不能有虛函數(shù)和引用成員
4、二進制字面值
0b /0B直接書寫二進制數(shù)字
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧