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

Modern C++ Overview综览

时间:2023-10-22 17:36:46浏览次数:39  
标签: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/17780720.html

相关文章

  • Effective Modern C++
     作者针对C++11/14而写的 EffectiveModernC++简介-EffectiveModernC++(cntransgroup.github.io)  一篇文章学完EffectiveModernC++:条款&实践-知乎(zhihu.com) ......
  • 活动报名 | Modern Data Stack Meetup 北京首站启动!与三大开源社区共同探索现代数据栈
    相信对于“现代数据堆栈(ModernDataStack)”这个名词,大家早已不陌生。但若问及其真正含义,往往又很难快速、准确地阐明。事实上,对于我们的团队组织而言,吃透并灵活应用“现代数据栈”所能带来的价值与收益,将会是深远且符合发展趋势的。Q1:什么是现代数据堆栈?现代数据堆栈的流行......
  • P7414 [USACO21FEB] Modern Art 3 G 题解
    思路考虑区间DP。设\(f_{i,j}\)表示要刷到\([i,j]\)这一段的目标需要的最小次数。对于\(f_{i,j}\),如果\(color_i\)与\(color_j\)相等,那么再子区间合并的时候就可以少刷一次,即\(f_{i,j}=\min\limits_{k=i}^{j-1}f_{i,k}+f_{k+1,j}-1\)。否则\(f......
  • Get a quick overview of the hottest diagnostic tools of the day
    Intoday'sfast-pacedtechnologicalworld,itiscriticalforprofessionalsacrossindustriestohaveaccesstoreliablediagnostictools.Thisisespeciallytrueforthosewhoworkinheavymachineryandagriculture.Inthisblogpostwetakeaclos......
  • C - Modern Art 3 G
    C-ModernArt3G题意有一种画法:每次可以填一段区间,把一段区间填成相同的颜色,给你成品,问最少填了多少次。思路区间dp,对于一段区间,显然会有一条分割线,把画作分成两边,如果没有,那就没意义了,考虑DFS,对于一个区间,枚举分割线,我们发现必然能够找到一条分割线使得被截断的颜色的条......
  • 《Modern C++ Design》之上篇
    如下内容是在看侯捷老师翻译的《ModernC++Design》书籍时,整理的code和摘要,用于不断地温故知新。第一章1.运用TemplateTemplate参数实作PolicyClassestemplate<template<classCreated>classCreationPolicy>//template<template<class>classCreationPolicy......
  • Arm Neoverse N2 reference design Technical Overview
    RDN2Intro本文档是ARM提供给SoC设计人员的一份概述设计文档,较为详细的描述了SoC的方方面面,具有很好的参考意义。SoC的系统架构,硬件互联SoC各block的功能描述、细节描述软件栈概述RDN2的其他参考文档DocumentNameDocumentIDLicenseeonlyAMBA4AXI-StreamPr......
  • Code-OpenSource-JSON for Modern C++ v3.10.5
    Code-OpenSource-JSONforModernC++v3.10.5github.com/nlohmann/jsonhttps://json.nlohmann.me/home/exceptions/#version-historyhttps://json.nlohmann.me/api/macros/json_diagnostics/#extended-diagnostic-messages#defineJSON_DIAGNOSTICS1输出详细信息......
  • modern standby BIOS
    什么是ModernStandbyBIOS简介ModernStandbyBIOS是一种新一代的计算机BIOS技术,它基于微软的ModernStandby技术。传统的ACPI技术使计算机进入睡眠模式时,CPU会停止运行,只有少量硬件设备处于待机状态。而ModernStandby技术通过使系统保持一定程度的活动,提供更快的从睡眠模式唤......
  • 现代C++(Modern C++)基本用法实践:一、类型推导
    概述类型推导主要是依赖auto关键字和decltype关键字/运算符实现的,具体用法参考下面的例子。二者特点:auto用于声明时推导遍历decltype用于推导各种表达式,decltype(var)中var也是一种称为变量表达式的表达式二者都是在编译时进行推导。引用类型推断:decltype推断变量类型时......