
C++11
CCCSR
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++11 可变参数模板
介绍一个可变参数模板是一个接受可变数目参数的模板函数或模板类。可变数目的参数成为参数包。存在两种参数包:模板参数包 ,表示零个或多个模板参数;函数参数包,表示零个或多个函数参数。用一个省略号来指出一个模板参数或函数参数表示一个包。在模板参数列表中,class…或typename…指出接下来的参数表示零个或多个类型的列表;一个类型名后面跟着的省略号表示零个或多个该给定类型的非类型参数的列表。在函数参数列表中,如果一个参数的类型是一个模板参数包,则此参数也是一个函数参数包。例如://Args是一个模板参数原创 2020-11-24 23:49:59 · 468 阅读 · 0 评论 -
C++11 std::move
文章目录定义std::move如何工作标准库move函数时使用右值引用的模板的一个很好的例子。研究move是如何工作的可以帮助巩固对模板的理解和使用。move函数只有唯一一个功能:获得一个绑定到左值上的右值引用,以通过右值引用的方式使用该左值。move可以接受任何类型的实参,因此它必然是一个函数模板。它的实现基于C++ 引用折叠和右值引用参数中的两个规则。定义标准库这样定义move:template<typename T>typename remove_reference<T&原创 2020-11-23 21:18:41 · 302 阅读 · 0 评论 -
C++ final和override关键字
防止继承C++11提供了一种防止继承发生的方法:在类名后面跟一个关键字final。class NoDerived final { /* */};//编译错误:无法将final类类型作为基类class Derived :public NoDerived{ /* */};原创 2020-11-21 15:42:29 · 374 阅读 · 0 评论 -
C++11 智能指针(三) unique_ptr
目录介绍创建一个unique_ptr转移所有权特殊情况介绍一个unique_ptr独占它所指向的对象。某个时刻只能有一个unique_ptr指向一个给定对象。unique_ptr被销毁时,它指向的对象也会被销毁。一个unique_ptr不支持普通的拷贝或赋值:unique_ptr<string> p1(new string{"abc"});unique_ptr<string> p2(p1);//错误:不支持拷贝unique_ptr<string> p3;//错误原创 2020-11-16 14:23:21 · 316 阅读 · 0 评论 -
C++11 智能指针(二) weak_ptr
目录介绍创建一个weak_ptr介绍weak_ptr是一种不控制所指向对象生存期的智能指针,它指向一个由shared_ptr管理的对象。将一个weak_ptr绑定到一个shared_ptr不会改变它的引用计数。一旦最后一个指向某个对象的shared_ptr被销毁,对象就会被释放,即使weak_ptr指向该对象,该对象也会被释放。weak_ptr的操作操作说明weak_ptr<T> w空weak_ptr可以指向类型为T的对象weak_ptr<T> w原创 2020-11-14 19:02:47 · 424 阅读 · 0 评论 -
C++11 智能指针(一) shared_ptr
目录前言shared_ptr介绍创建一个shared_ptrmake_shared函数shared_ptr的内存泄漏一个简单的shared_ptr实现前言C++中使用一对运算符new和delete来管理动态内存:new在动态内存中为对象分配空间并返回一个指向该对象的指针,delete接受一个动态对象的指针,销毁该对象并释放与之关联的内存。确保在正确的时间释放内存极其困难。有时我们会忘记释放已分配的内存,这种情况下就会产生内存泄漏;有时在尚有指针引用内存的情况下我们就释放了它,这种情况下就产生了一个引用原创 2020-11-13 15:43:46 · 483 阅读 · 0 评论 -
C++11 bind函数
文章目录介绍使用bind绑定参数bind的参数顺序绑定引用参数介绍标准库bind函数定义在头文件functional中,可以将bind函数看成一个通用的函数适配器,它接受一个可调用对象,并生成一个新的可调用对象来“适配”原对象的参数列表。调用bind的一般形式为:auto newCallable = bind(callable, arg_list);其中,newCallable 是一个可调用参数,arg_list 是一个逗号分隔的参数列表,对应于给定的 callable 参数。也就是说,当调用原创 2020-11-11 19:44:02 · 349 阅读 · 0 评论 -
C++11 lambda表达式
目录介绍lambda优点lambda捕获值捕获引用捕获隐式捕获可变lambda介绍lambda一个lambda表达式表示一个可调用的代码单元。可以将其理解为一个未命名的内联函数。与任何函数类似,一个lambda具有一个返回类型、一个参数列表和一个函数体。但与普通函数不同,lambda可能定义在函数内部。一个lambda表达式具有如下形式:[capture list] (parameter list) -> return type { function body }capture list(捕原创 2020-11-11 18:07:07 · 323 阅读 · 0 评论