C++ 20协程
摘要:协程就是一个可以挂起(suspend)和恢复(resume)的函数(不能是 main 函数)。你可以暂停协程的执行,去做其他事情,然后在适当的时候恢复到暂停的位置继续执行。协程让我们使用同步方式写异步代码。 C++ 提供了三个方法挂起协程:co_await, co_yield 和 co_return
阅读全文
emplace_back()
摘要:emplace_back()是c++11的新特性。和push_back()的区别在于push_back()方法要调用构造函数和复制构造函数,这也就代表着要先构造一个临时对象,然后把临时的copy构造函数拷贝或者移动到容器最后面。而emplace_back()在实现时,则是直接在容器的尾部创建这个元素
阅读全文
智能指针
摘要:1.什么是智能指针 从比较简单的层面来看,智能指针是RAII(Resource Acquisition Is Initialization,资源获取即初始化)机制对普通指针进行的一层封装。这样使得智能指针的行为动作像一个指针,本质上却是一个对象,这样可以方便管理一个对象的生命周期。 在c++中,智能
阅读全文
Lambda
摘要:Lambda 表达式,实际上就是提供了一个类似匿名函数的特性 Lambda 表达式的基本语法如下: [capture_list] (params_list) mutable exception -> return type { function body } capture__list:捕获外部变量
阅读全文
Modern C++ 语言可用性的强化
摘要:1. 常量 (1) nullptr 空指针 nullptr 出现的目的是为了替代NULL,专门用来区分空指针、0 (2) constexpr 常量表达式 在编译时就把这些表达式直接优化并植入到程序运行,增加程序的性能。 char arr_1[10]; // 合法char arr_2[LEN]; //
阅读全文
decltype
摘要:decltype + 变量 当使用decltype(变量)的形式时,decltype会直接返回变量的类型(包括顶层const和引用)。 const int ci = 0, &cj = ci; decltype(ci) x = 0; // 定义了x, x的类型是const int decltype(c
阅读全文