App下載

帶你認識現(xiàn)代C++,看看C++11常用特性

猿友 2020-08-04 17:38:47 瀏覽數 (6664)
反饋

C++11已經出來很久了,網上也早有很多優(yōu)秀的C++11新特性的總結文章,所以本文就是對帶你了解一下C++11的一些新特性。

C++ 是一個擁有用戶群體相當大的語言,同時也在多個領域使用的語言。從 C++98 的出現(xiàn)到 C++11 的正式定稿經歷了長達十年多之久的積累。

C++11C++ 的第二個主要版本(前一個是 C++98 而后一個是 C++17,C++14則是C++11的一次小的改進 ),并且是從 C++98 起的最重要更新。它引入了大量更改,標準化了既有實踐,并改進了對 C++ 程序員可用的抽象。

C++14/17 則是作為對 C++11 的重要補充和優(yōu)化, C++20 則將這門語言領進了現(xiàn)代化的大門,所有這些新標準中擴充的特性,給 C++ 這門語言注入了新的活力。

C++演進路線路

C++11是對目前C++語言的擴展和修正, C++11不僅包含核心語言的新技能,而且擴展了C++的標準程序庫(STL) ,并入了大部分的C++ Technical Report 1(TR1) 程序庫(數學的特殊函數除外)。

C++11關鍵新特性:

C++11關鍵新特性

核心語言功能特性

  • auto 與 decltype
  • 預置與棄置的函數
  • final 與 override
  • 尾隨返回類型
  • 右值引用
  • 移動構造函數與移動賦值運算符
  • 有作用域枚舉
  • constexpr 與字面類型
  • 列表初始化
  • 委托與繼承的構造函數
  • 花括號或等號初始化器
  • nullptr
  • long long
  • char16_t 與 char32_t
  • 類型別名
  • 變參數模板
  • 推廣的(非平凡)聯(lián)合體
  • 推廣的 POD (平凡類型與標準布局類型)
  • Unicode 字符串字面量
  • 用戶定義字面量
  • 屬性
  • lambda 表達式
  • noexcept 說明符與 noexcept 運算符
  • alignof 與 alignas
  • 多線程內存模型
  • 線程局部存儲
  • GC 接口
  • 范圍 for (基于 Boost 庫)
  • static_assert (基于 Boost 庫)

庫功能特性

頭文件

<typeindex> <type_traits> <chrono> <initializer_list> <tuple> <scoped_allocator> <cstdint> <cinttypes> <system_error> <cuchar> <array> <forward_list> <unordered_set> <unordered_map> <random> <ratio> <cfenv> <regex> <atomic> <thread> <mutex> <future> <condition_variable>

庫功能特性

  • 原子操作庫
  • emplace() 與其他遍及既存標準庫所有部分的右值引用使用
  • std::unique_ptr
  • std::move_iterator
  • std::initializer_list
  • 有狀態(tài)及有作用域分配器
  • std::forward_list
  • chrono 庫
  • ratio 庫
  • 新算法
  • Unicode 轉換平臺
  • thread library
  • std::exception_ptr
  • std::error_code 與 std::error_condition
  • 迭代器改進:
  • std::begin
  • std::end
  • std::next
  • std::prev
  • Unicode 轉換函數
C++

0 人點贊