std::array为11标准中带来的可以替代C风格数组的聚合类型,可以通过聚合初始化生成"C++风格"上的"C风格"数组:
1 | std::array<int, 3> a = {1, 2, 3}; |
主要代码如下:
std::array为11标准中带来的可以替代C风格数组的聚合类型,可以通过聚合初始化生成"C++风格"上的"C风格"数组:
1 | std::array<int, 3> a = {1, 2, 3}; |
主要代码如下:
废话不多说直接看源码,以下基于gcc13版本shared_ptr实现
继上次14标准小结过了三年多…难道我这系列博客也要和标准一样三年一个吗😂,眼见23标准都出完了,我也该加速了,废话不多说,开始17标准语言特性改动:
在以往标准中inline关键字通常是做为编译器进行内联函数替换的指示器,优化不必要的函数调用而使用的,但比较容易忽略的是inline函数还有指示“允许多次定义”的功能,
本文包含《Effective Modern C++》中第7、8两章内容,《Effective Modern C++》个人读书笔记此篇完结。
c++11标准中带来了std::thread和std::future,两个类型都是作为并发内容加入到11标准中的,thread是以往线程概念的类型封装,future是c++标准为了应对异步操作而做的新的概念封装,例如一个future对象可以通过std::async建立:
本文包含《Effective Modern C++》中第6章内容的个人笔记,包含lambda表达式在C++11/14标准中的使用问题。
“捕获只能针对于在创建lambda式的作用域内可见的非静态局部变量(包括行參)”在书写lambda式的捕获语句时需要牢记这句话。
按默认捕获形式[]、[=]、[&]书写代码的情况容易使人忽略局部变量生存期的事实,从而导致指针空悬,也容易误导人使人们认为lambda是自洽的,所以应当显式声明lambda捕获的变量。