任何人都可以解释这个初始值设定项代码吗?
Can anybody explain this initializer code?
谁能解释一下"self_( this, []( ... ) {} )
"是如何工作的?
struct Parent {
std::shared_ptr<Parent> self_;
Parent() : self_( this, []( ... ) {} ) {}
operator std::shared_ptr<Parent>() const { return self_; }
}
谁能解释一下"
self_( this, []( ... ) {} )
"是如何工作的?
self_
,Parent
的成员,是一个std::shared_ptr<Parent>
。
跟
self_( this, []( ... ) {} )
使用具有两个参数的构造函数进行初始化:
(1(指针共享,this
指向包含self_
的同一对象的指针(所以名称(
(2( 删除self_
对象时调用的函数
观察功能:[]( ... ) {}
它是一个lambda函数,可以接受所有(...
,old-C可变参数方式(并且什么都不做(主体为空(。
这样做(不执行任何操作删除器(是因为当具有特定值的最后一个共享指针被销毁时,无需对this
指针执行任何操作。
[]( ... ) {}
这只不过是lambda函数,它具有以下格式
[ 捕获子句 ] (参数( -> 返回类型
{
定义 方法
}
捕获子句:指定通过值或引用捕获和捕获哪些变量
参数:输入参数列表可以是(int val1,int val2(或(...(或任何仅供参考的示例
返回类型:lambda 表达式的返回类型
[]:空捕获子句表示它不捕获任何内容
(...( : 可变参数函数
{} : Lambda 主体,其中包含 lambda 函数的代码
相关文章:
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 有人能为我解释一下C++代码吗
- 请解释字谜的代码,我看不懂计数器数组,每个值已经是0
- 有人可以解释一下这段代码如何能够反转字符串
- 有人可以向我解释一下这段代码的作用吗?
- 有人可以详细解释这个回文代码是如何工作的吗?
- 如何在 C++11 中解释静态代码
- 任何人都可以解释一下我是否需要 & 在第一个代码片段中
- 我不完全确定此代码的行为.有人可以向我解释一下吗?
- 有人可以解释我这个代码吗?它给出与我们输入的数字相反
- 我在 2D 数组的动态内存分配中遇到了一些奇怪的代码C++? 请解释一下这是什么?
- 解释以下宏代码的 O/P
- 如何解释 IDA Pro 生成的这些代码?
- 有人能给我解释一下下面的模板代码吗
- 按位 - 代码解释
- 有人可以根据此代码解释起床和降低语法
- 用于人脸检测的Haar级联xml文件代码解释OpenCV
- 代码解释 C++ [结构 / 两个 diamentinal 数组 / 指针]
- int到二进制代码解释C++
- c++代码解释