App下載

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

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

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

C++ 是一個(gè)擁有用戶群體相當(dāng)大的語言,同時(shí)也在多個(gè)領(lǐng)域使用的語言。從 C++98 的出現(xiàn)到 C++11 的正式定稿經(jīng)歷了長(zhǎng)達(dá)十年多之久的積累。

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

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

C++演進(jìn)路線路

C++11是對(duì)目前C++語言的擴(kuò)展和修正, C++11不僅包含核心語言的新技能,而且擴(kuò)展了C++的標(biāo)準(zhǔn)程序庫(STL) ,并入了大部分的C++ Technical Report 1(TR1) 程序庫(數(shù)學(xué)的特殊函數(shù)除外)。

C++11關(guān)鍵新特性:

C++11關(guān)鍵新特性

核心語言功能特性

  • auto 與 decltype
  • 預(yù)置與棄置的函數(shù)
  • final 與 override
  • 尾隨返回類型
  • 右值引用
  • 移動(dòng)構(gòu)造函數(shù)與移動(dòng)賦值運(yùn)算符
  • 有作用域枚舉
  • constexpr 與字面類型
  • 列表初始化
  • 委托與繼承的構(gòu)造函數(shù)
  • 花括號(hào)或等號(hào)初始化器
  • nullptr
  • long long
  • char16_t 與 char32_t
  • 類型別名
  • 變參數(shù)模板
  • 推廣的(非平凡)聯(lián)合體
  • 推廣的 POD (平凡類型與標(biāo)準(zhǔn)布局類型)
  • Unicode 字符串字面量
  • 用戶定義字面量
  • 屬性
  • lambda 表達(dá)式
  • noexcept 說明符與 noexcept 運(yùn)算符
  • alignof 與 alignas
  • 多線程內(nèi)存模型
  • 線程局部存儲(chǔ)
  • 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() 與其他遍及既存標(biāo)準(zhǔn)庫所有部分的右值引用使用
  • std::unique_ptr
  • std::move_iterator
  • std::initializer_list
  • 有狀態(tài)及有作用域分配器
  • std::forward_list
  • chrono 庫
  • ratio 庫
  • 新算法
  • Unicode 轉(zhuǎn)換平臺(tái)
  • thread library
  • std::exception_ptr
  • std::error_code 與 std::error_condition
  • 迭代器改進(jìn):
  • std::begin
  • std::end
  • std::next
  • std::prev
  • Unicode 轉(zhuǎn)換函數(shù)
C++

0 人點(diǎn)贊