C++ 11增加了對多線程的支持,使得開發者可以基於c++開發跨windows,linux平臺的軟件, c++的多線程庫是對各個不同平臺的線程api的封裝:
理解特殊成員函數的生成 在C++的官方說法中,有一條是C++願意自己生成特殊成員函數(special member functions)。在C++98,特殊成員函數有四個:默認構造函數,析構函數,拷貝構造函數,拷貝賦值運算符。這四
比起unscoped enums更偏愛scoped nums 作爲一個通用的規則,在大括號內聲明一個名字就限制了名字的作用域在括號之內。這個規則不適用於C++98的枚舉。這種枚舉的枚舉值的作用域與枚舉enum的作用域相同: enu
用nullptr代替0和NULL 你看看這樣行不行,0字面上的意思是個int,而不是指針。如果C++代碼中把0用作指針,那麼C++會勉強地把0翻譯爲一個空指針,和一開始說的不太一樣。C++的主要政策是,0是一個int值,而不是指針
用auto代替顯示類型聲明 先開個小玩笑: int x; 該死的,我忘記初始化x 了,那麼它的值是未定義的。它可能會被編譯器初始化爲0,這取決於它的聲明位置。 我們再看看另一個小玩笑,它用一個迭代器解引用得到的結構去初始化一
當auto會推斷出不合理的類型時使用顯式類型初始化語法 條款5中我們說明了使用auto聲明類型會比顯式聲明類型更好,但是有時候auto類型推斷會和我們想象中有點差別。例如,我有一個函數以Widget 爲參數,返回std::vect