Colin's Blog

Recent content on Colin's Blog

马上订阅 Colin's Blog RSS 更新: https://blog.oyyko.com/index.xml

现代C++白皮书 笔记1

finalwind42@gmail.com (Oyyko)
2022年2月17日 08:00

现代C++白皮书 笔记1

C++14

  • 0b11001010
  • 0b1100'1010'0010
  • 函数返回类型推导
1auto add(auto&x,auto&y)2{3    return x+y;4}
  • constexpr中的局部变量
  • 移动捕获 [p = move(ptr)](){};
  • 按类型访问元组 x = get<int>(t);
  • 用户定义字面量 3ms, 55us, 10i, "hello"s
  • 变量模版
1template <typename T>2T x = T(3.1);34cout << x<int> << " " << x<double> << endl; // 3 3.1
  • 泛型lambda表达式
1auto get_size = [](auto& m){return m.size();};

在其他一些语言里面,有专门的特殊语法:

1C#      x => x*x2JAVA    x -> x*x3D       (x){return x*x;}

Bjarne认为不使用特殊记法是对的,但认为应该引入概念。

Concept 概念

概念——用于指定对于模版参数要求的编译期谓词类型和值概念:Buffer<unsigned char, 128> 即值也可以作为概念的参数(感觉BS就是让Alexander Stepanov和STL给带坏了才老想着整Concept)

Concept的问题:

 1template <typename T> 2concept Tickable...

剩余内容已隐藏

查看完整文章以阅读更多