[TOC]
https://blog.csdn.net/csdn_kou/article/details/81113215
C++98關鍵字
C++11 關鍵字共73個
alignas
alignof用于獲取取指定表達式指定的(類似sizeof,可以直接是類型名)的對齊(alignment)。alignas用于聲明時指定對齊類似于現有的類型。和sizeof類似,兩者的操作數都不被求值。
constexpr
類似const但更強大,修飾函數或對象,表示函數結果或對象是編譯時決定的常量,以便優化。(const不能修飾一般的函數,也不一定指定聲明的對象能編譯期的常量表達式,更可能只是只讀對象。而在C語言中,const完全只能指定只讀對象。)
char16_t 和 char32_t
二者分別表示16位字符型和32位字符型,類似char和wchar_t,也是一般只專用于表示字符的整數類型,且設計上用于表示Unicode字符。char16_t和char32_t是C++11新增的,以克服wchar_t在不同平臺上無法保證確定寬度的缺點。
decltype
用于編譯時推斷類型。此外參與函數聲明的另一種語法:指定返回auto,同時decltype引導trailing-return-type指定實際應該返回類型。decltype的操作數也不被求值。
nullptr
字面量nullptr是具有std::nullptr_t類型的右值,是空指針常量。C++98/03中表示空指針常量的NULL或0都會在重載中引起混淆,而純庫的解決方案在這里也遇到困難,所以有必要加入新的關鍵字來專門表示空指針。
noexcept
實踐表明動態異常規范會影響運行時性能。新增的noexcept表示靜態異常規范,只指定函數(模版)是否有異常拋出,這里noexcept即noexcept(true),表示沒有異常拋出。除了異常規范,noexcept可以作用于一個表達式來判斷是否有異常,這對于模版代碼非常有用。
static_assert
用于編譯時的靜態斷言:若指定的表達式為false則編譯失敗。
auto
C++11標準和C++98/03標準的auto是不同的。C++98/03標準中,auto表示自動儲存類型 [6] ;C++11標準中,auto表示由編譯器靜態判斷其應有的類型