C++的發展 和 C++11

首先,放兩個鏈接:

  1. 算官網吧 Standard C++
  2. 查C++的一些API函數很好用的 The C++ Resources Network - cplusplus

C++發展歷程

時至今日(2018.12.12),C++17已經發布,C++20開發進行中。
在這裏插入圖片描述

GCC支持C++11

有大量的編譯器已經支持C++11,當然也包含GCC。
在這裏插入圖片描述
C++的標準是一個持續發展的過程,不斷有新增和刪除,所以GCC對C++11的標準支持也是動態的,比如:GCC4.4(v1.0)就支持c++11標準中的auto關鍵字;GCC4.7才支持Extended friend Declarations;GCC4.8才支持alignas等等。
一般認爲4.8版本以上的GCC對C++11的支持比較完整。可以參考下面鏈接:
GCC支持C++11特性的版本
GCC4.8默認編譯程序是用C++98標準,如果要使用C++11標準,需指定-std=c++11。
可以通過man g++,搜索-std查看。
在這裏插入圖片描述

C++11新特性

C++11標準支持了許多新特性,比如:類型推導關鍵字auto、空指針nullptr、多線程、lamda表達式等等。更詳細的可以參考wiki C++11。下面舉一些自己認爲很有用的實例。

類型推導關鍵字auto

空指針nullptr

模板嵌套寫法優化 > >

在以前的C++標準中,假如你寫一個含有其他模板類型的模板:

vector<vector<int> > vector_of_int_vectors;

你必須在結束的兩個’>‘之間添加空格。而且當你寫成>>而沒有空格時,你將得到困惑和誤導的編譯錯誤信息。產生這種行爲的原因是C++詞法分析的最大匹配原則(maximal munch rule)。
而在C++11標準中,就不這麼麻煩了,可以不加空格了。

vector<vector<int>> vector_of_int_vectors;

參考文章和鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章