ModernC++(一)C++11

都在说Modern C++和C++不是一个东西,到底MordenC++好在哪里,学了才有发言权。

why Morden C++

C++ 98的目标:

  • 支持面向对象编程,支持泛型编程
  • 支持数据抽象
    C++ 11的目标:
  • 使得C++成为更好的适用于系统开发以及库开发的语言
  • 使得C++语法一致,易于教学
  • 向前兼容C++98/03

C++11从很早就开始准备,原本代号C++0x,一直到11年才完成,也就改名了C++11
理解了定位再去看具体得特性调整,才会更能体会到用法和必要性。

C++11的具体思路:

  • 通过内存模型、线程、原子操作等来支持本地并行编程(NativeConcurrency)。
  • 通过统一初始化表达式、auto、declytype、移动语义等来统一对泛型编程的支持。
  • 通过constexpr、POD(概念)等更好地支持系统编程。
  • 通过内联命名空间、继承构造函数和右值引用等,以更好地支持库的构建。

C++11设计理念

  • 保持语言的稳定性和兼容性(Maintain stability and compatibility)。
  • 更倾向于使用库而不是扩展语言来实现特性(Prefer libraries to languageextensions)。
  • 更倾向于通用的而不是特殊的手段来实现特性(Prefer generality tospecialization)。
  • 专家新手一概支持(Support both experts and novices)。
  • 增强类型的安全性(Increase type safety)。
  • 增强代码执行性能和操作硬件的能力(Improve performance and abilityto work directly with hardware)。
  • 开发能够改变人们思维方式的特性(Make only changes that change theway people think)。
  • 融入编程现实(Fit into the real world)。

编译器支持情况:

gcc从4.3开始支持C++11,clang从2.8开始支持C++11

总的来说,灵活的静态类型、小的抽象概念、绝佳的时间与空间运行性能,以及与硬件紧密结合工作的能力都是C++11突出的亮点。

what Morden C++

对于C++98/03的改进,这些改进可以分为语言特性改进和库特性改进。

语言特性

在这里插入图片描述
在这里插入图片描述

图片来自《深入理解C++11:C++11新特性解析与应用》

库特性

  • 算法增强Algorithm improvements
  • 容器增强Container improvements
  • 分配算符Scoped allocators
  • std::array
  • std::forward_list
  • 无序容器Unordered containers
  • sts::tuple
  • 类型特性Type traits
  • std::function, std::bind
  • unique_ptr
  • shared_ptr
  • weak_ptr
  • 线程Threads
  • 互斥Mutex
  • 锁Locks
  • 条件变量Condition variables
  • 时间工具Time utilities
  • std::future, std::promises
  • std::async
  • 随机数Random numbers
  • 正则表达式regex
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值