C++11
文章平均质量分 91
介绍C++11
执假以为真
Learning, Coding, Writing
展开
-
C++的计时
介绍chrono这个namespace的一些常见用法原创 2022-04-05 12:09:58 · 3064 阅读 · 0 评论 -
简介C++中的智能指针
简介C++中的智能指针本文主要介绍C++标准中的3种智能指针: unique_ptr, shared_ptr, weak_ptr至于早期的 auto_ptr (在C++11标准中被列为 deprecated) 和 boost::scoped_ptr (不属于C++标准),不在本文范围内。智能指针的原理及RAII,属于比较基础的内容,不再多说。要使用这3种智能指针,必须包含头文件 <memory>.1. unique_ptr1.1 常用的构造方法与赋值操作符顾名思义,unique原创 2021-10-06 18:44:00 · 460 阅读 · 0 评论 -
简介shared_ptr
多年前写了一篇shared_ptr简介的博客,现在觉得写得不好,就重写一下。加了一些代码和新的内容: aliasing constructor 和 owner_before.原创 2021-03-21 00:48:08 · 1297 阅读 · 1 评论 -
简介内存模型与C++11的memory_order
先看一段代码#include <iostream>#include <thread>int a = 0;int b = 0;void func1(){ a = 1; b = 2;}void func2(){ std::cout << a << "," << b << std::endl; // 不确定}int main(void){ std::thread t1(func转载 2021-03-17 23:57:44 · 523 阅读 · 0 评论 -
emplace_back/emplace 与 push_back/insert 效率的详细比较
emplace_back/emplace 与 push_back/insert 的效率比较在 STL 的容器中,除了给 vector 等序列容器定义了push_back方法之外,还定义了emplace_back方法; 除了给 map 等关联容器定义了insert方法外,还定义了emplace方法。那么,emplace_back/emplace 和 push_back/insert 的区别是什么?前者是否比后者更快呢?区别分析首先谈谈区别。如果要将一个结构体类型的实例,放入容器中,一般有2个步骤:原创 2021-03-16 00:06:36 · 6416 阅读 · 2 评论 -
从右值到完美转发
C++11中明确了右值的概念,引入了右值引用、引用折叠、完美转发等概念及功能。这一系列的概念及功能是一脉相承,由浅入深的。笔者为此写了三篇文章来逐步介绍这些。现集中在此文中,作为一个专辑。简介C++11中的左值、纯右值及将亡值谈谈右值引用详解模板参数推导、引用折叠和完美转发C++作为非常复杂的一门语言,由此可见一斑。不过一旦弄懂,也就不会觉得那么复杂了。希望上面这些文章会对读者有些帮助...原创 2020-04-11 15:22:46 · 158 阅读 · 0 评论 -
详解模板参数推导、引用折叠和完美转发
在前面的2篇博文中,分别介绍了左值右值和右值引用。本文意在介绍模板参数推导规则、引用折叠和完美转发。右值引用(准确地说,是万能型引用,即universal reference),模板参数推导规则和引用折叠,这三者的结合,实现了完美转发。本文将依次介绍以上三者。证明引用、左值引用、右值引用的方法进入正题之前,我们先介绍一下,如何证明一个变量是引用类型,是左值引用还是右值引用。有网文使用的是...原创 2020-04-11 15:12:37 · 1580 阅读 · 3 评论 -
谈谈右值引用
左值与右值这在之前的一篇博文中有详细介绍,这里再简单说一下。左值:可使用&符号取地址可位于赋值操作符=的左侧,也可位于右侧右值:不能使用&符号取地址只能位于赋值操作符的右侧老式的swap函数template<class T> swap(T& a, T& b) // 老式的swap函数{ T tmp(a); ...原创 2020-04-05 11:40:17 · 564 阅读 · 0 评论 -
简介C++11中的左值、纯右值、将亡值
在c++11以后,表达式按值类别,可分为3种:左值(left value,lvalue)将亡值(expiring value,xvalue)纯右值(pure rvalue,pralue)另,泛左值(generalized lvalue,glvalue) = 左值 + 将亡值右值(right value,rvalue) = 纯右值 + 将亡值以下详细讲解:...原创 2020-03-05 23:08:48 · 1720 阅读 · 0 评论 -
C++ shared_ptr四宗罪
转载自https://www.jianshu.com/p/f1925247c14f原文出处:https://link.jianshu.com/?t=http://blog.liancheng.info/?p=85问题描述在基于C++的大型系统的设计实现中,由于缺乏语言级别的GC支持,资源生存周期往往是一个棘手的问题。系统地解决这个问题的方法无非两种:使用GC库 使用引用计数严...转载 2019-07-31 22:58:25 · 454 阅读 · 0 评论 -
《深入理解C++11》笔记
整理一下以前的笔记,聊作这个月的Blog吧。第1章 新标准的诞生 & 第2章 保证稳定性和兼容性C++11有约140个新特性,修正了C++03的约600个错误。C++11的新关键字:alignas、alignof、decltype、auto(重新定义)、static_assert、using(重新定义)、noexcept、nullptr、constexpr、thread_...原创 2019-02-27 23:53:54 · 1715 阅读 · 0 评论 -
CopyConstructible, MoveConstructible, CopyAssignable, MoveAssignable
翻译了关于CopyConstructible、MoveConstructible、CopyAssignable、MoveAssignable的四篇文章。翻译 2016-06-04 23:58:04 · 855 阅读 · 0 评论