首页 > 编程语言 >Modern C++ Overview (综览)

Modern C++ Overview (综览)

时间:2022-12-18 22:44:33浏览次数:56  
标签:std hash Overview Modern C++ classes 任意 综览

Part I:Language(第一篇:语言)

  • 大局观——简直像个新语言

给出一个完整实例,展示(几乎)所有新特性的样貌,让学员从真实代码中一次性窥得(几乎)全豹,得知即将面对的新知和挑战。

  • auto, type deduction

型别/型态 推导是Modern C++至关重要的某种基础;这一节为后头诸多特性打好基础。

  • std::initializer_list, Uniform Initialization(一致性初始化)

标准库的所有容器都已新添一个以std::initializer_list为形参的构造函数,用以应付数量不定的实参。这东西对我们的应用代码也很有用。

  • Ranged-Based for loop

根据调查最受欢迎的新特性。简单易学;其实只是个语法糖衣。

  • Lambdas

大幅改变Modern C++应用代码的风貌。长相奇特,规则也奇特,但是经过仔细推敲就能消除所有学习障碍。

  • Move Semantics and Rvalue References, (移动语意与右值引用)

Modern C++最重要的基础特性之一,影响范围几乎涵盖所有层面的代码。

  • Perfect Forwarding and Universal Reference, (完美转发与万能引用)

带有名称的右值其实是个左值” 这一看似魔幻的说法和事实造成参数在转发过程中出现不完美。Modern C++为此提出解决之道。

  • 如何编写 move-aware classes;关于特殊成员函数

「具备移动意识」的 classes 是 Modern C++ 得以提升效能的重要因素。标准库供应的 classes 都已有了这种意识,user-defined classes 该怎么写才能融入大家庭?它们该提供哪些特殊成员函数?

  • Variadic Templates(变参模板)

少数几项绝对无法以C++98绕弯替换的语言构件之一。用来解决”任意数量任意型别之实参” 难题。可借以实现令人瞠目结舌的递归复合和递归继承,而后者正是 std::tuple 赖以实现的技术。

  • =default, =delete, final, override, noexcept, decltype,…

Part II: Standard Library (第二篇:标准库)

  • std ::tuple:可将任意数量任意型别的东西组成一个“个体”
  • std ::move, std ::forward, std ::ref:三个常见且重要但不易理解的标准库零组件
  • std ::any, std::function:ModernC++力推的一种关于“任意” 的概念和作法
  • Type Traits:让我们得以根据object的型别而非内容进行编程
  • Unordered Containers:一套以散列表hash table为核心的新式标准容器
  • std::hash:彻底理解hash函数的形式和作为
  • boost::hash_val():一个够好的万用型hash 函数,由BOOST提供
  • 智能指针 (Smart Pointers):unique_ptr、shared_ptr和weak_ptr,彻底理解其背后结构
  • 线程库(thread library)简介:线程库提供了什么?与多线程 APIs 的关系

Part III: C++ 20 之崭新成分

  • Concepts, Modules, Coroutines:简介这些崭新部件的样貌及其背后思维

标签:std,hash,Overview,Modern,C++,classes,任意,综览
From: https://www.cnblogs.com/jigsawecho/p/16991111.html

相关文章

  • How to install Tabby(Terminus): A modern age terminal on Ubuntu 22.04
    HowtoinstallTabby(Terminus):AmodernageterminalonUbuntu22.047monthsagoby AdnanShabbirTheTerminalistheprimarytoolofanyLinuxdistribut......
  • 5G NR - RLC协议阅读笔记 - Overview
    ​1.写在前面的话诚如通信著名博客sharetechnote作者JaekuRyu在其LTERLC笔记的开场白时说:Personallytome,RLClayerisoneofthetrickestareatounderstandin......
  • Sales Process Overview
    SalesProcessing:  ShippingProcessing:creatingdeliverypicking PostGoodsIssue  BillingProcessing:creatingbillingdocument  ......
  • Spring官方文档——1.概述(Overview)
    本文档基于SpringFramework5.3.24https://docs.spring.io/spring-framework/docs/5.3.24/reference/html/Overviewhistory,designphilosophy,feedback,gettingst......
  • Modernize Your C# Code - Part I: Properties属性
    我觉得讨论新的语言特性在哪里有亮点,旧的语言特性在哪里有亮点是很重要的-我们称之为已建立的-它们仍然是首选。在文章的末尾你将学习到属性是什么,还有更多关于自动属性、......
  • Modern C++ 智能指针 shared_ptr
    现代C++为了解决内存泄露以及资源回收等问题,引入了智能指针的概念。在日常的C++实践中也是高频使用。本文是在实践过程中,对现代C++中的智能指针进行的一个稍微全面的总结......
  • BZOJ 4776([Usaco2017 Open]Modern Art-想法题)
    已知一个矩阵,初始全0,你每一次选一个非空子矩阵,涂上一个数。现在你涂n^2次,其中1~n^2每个数用一次,问哪个数可能是第一次涂的。我们预先框出每个数字涂的最小子矩阵,然后看看......
  • [Unit testing RxJS] Overview: Testing Observables with Marble Testing
    const{TestScheduler}=require("rxjs/testing");const{map,take,delay,mapTo,catchError}=require("rxjs/operators");const{concat,from,of,interva......
  • [Recoil] Overview
    AtomFamilyForexample,youhavelistofelements.Wewanttoavoidthatsingleelemenetgotchanged,wholelistgotre-render.Alsowanttosharethesinglee......
  • Effective Modern C++ 中文版 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1dYKjNiAsC3zrTrT1SO8g5g点击这里获取提取码 ......