C++标准库第二版笔记 2.1


1 Range-Based for 循环

for ( decl : coll ) {
statements;
}
// collaborate

类似C# foreach?

2 新式的字符串字面常量(String Literal)

常用于正则表达式(regular expression)

R"(\\n)"
// 相当于
R"\\\\n"

当你想在字符串中写出一个右括号“)”,则使用定义符(delimiter) 换而言之,如果你想在字符串中添加括号,使用定义符。

R"NC(any stuff NC())NC"
// Equals
"any stuff NC()"

2.1 编码的(encoded)string literal

L"" // wide string literal "wchar_t"
U"" // string literal char32_t
u"" // string literal char16_t
u8"" // UTF-8 const char

16章介绍如何使用不同的编码(encoding)完成国际化(internationalization)

3 关键字 noexcept

异常是一个尚未能理解的大话题,另起一篇文章详细讨论异常。

4 崭新的 template 特性

模版是一个尚未能理解的大话题,另起一篇文章详细讨论模版。

5 lambda 表达式

同上

6 关键字 decltype

decltype(declared type)

是一个可以让编译器找出表达式类型的关键字。

std::map<std::string, float> coll;
decltype(coll)::value_type elem;

应用之一是声明返回类型,另一个用途是metaprogramming(超编程;元编程)或是用来传输一个lambda类型。

7 新的函数声明语法(New Function Declaration Syntax)

template<typename T1, typename T2>
auto add(T1 x, T2 y) -> decltype(x+y) // Equals Pseudocode decltype(x+y) add(T1 x, T2 y)

这种写法和“为lambda声明返回类型”是一样的。

8 带领域的(scoped)枚举常量(enumeration)

又称strong enumeration或enumeration class,这是enumeration value(或称为enumerator)的一个较干净的实现。

 enum class Salutation : char { mr, ms, co, none };

好处: 1、绝不会隐式自、至int 2、如果数值不再enumeration被声明的作用域内,你必须改写为salutation::mr 3、通过定义一个底层类型来确保每一个值的大小。 4、有提前声明(forward declaration)可供使用,以避免新的值而重新编译。

type trait std::underlying_type 你可以核定(evaluate)一个枚举类型。

error condition value也是一个scoped enumerator???

最新文章

  1. Spring加载xsd引起的问题小记
  2. [dijkstra+heap优化] 模板
  3. Oracle数据库入门——初级系列教程
  4. liunx几台机器直接用ssh链接
  5. eclipse的android智能提示设置
  6. poj1190生日蛋糕
  7. 我爱工程化 之 gulp 使用(一)
  8. WiFi与WLAN的区别
  9. DZ真是各种强大
  10. 偶然碰到的Win7 64位下CHM 的问题解决
  11. python学习笔记之三:字典,当索引不好用时
  12. SESSION 与 COOKIE的区别是
  13. javascript痛点之二作用域链
  14. 华为云.NET Core支持情况调查
  15. corda
  16. AudiosessionSetActive
  17. jquery load加载页面内ajax返回的div不能响应页面js的问题的解决方案
  18. 2.24 js处理内嵌div滚动条
  19. [转载] python必碰到的问题---encode与decode,中文乱码
  20. 更改AVD默认路径

热门文章

  1. 关于web前端base64转换为Blob,存入数组后 ajax请求传输到后端 接受不到文件问题
  2. WPF 主窗口关闭时结束所有相关线程
  3. as3 加载进来的swf进行缩放
  4. MySQL一般查询日志或者慢查询日志历史数据的清理
  5. Web开发敏捷之道应用Rails 进行Web开发(原书第4版)遇到的问题
  6. 4、promise
  7. 软件工程小组讨论设计NABCD
  8. linux下Vim文本编辑器的常用快捷键
  9. margin的垂直方向塌陷
  10. QUARTZ系列之二-监听器