【问题标题】:Wrapped reference-counting, questions about move-semantics包装引用计数,有关移动语义的问题
【发布时间】:2014-04-08 01:08:14
【问题描述】:

我正在开发一个类,该类充当引用计数对象的作用域助手。该接口应允许使用如下类:

{
    Handle<String> s = Handle<String>::New("Hello, World!");
    s = s->Concat(Handle<String>::New(" My name is Peter"));
}

String 是包含引用计数的类。

我对移动语义不是很熟悉,也找不到满足移动语义适用条件的具体论文。基本上,我想知道的是:

this 可以是已经在移动构造函数中初始化的对象吗?因为如果是这种情况,我无法区分我的Handle 类中指向String 的成员是否包含一些垃圾值或实际上指向一个真正的String

【问题讨论】:

  • 你的问题不清楚。 *this 在构造函数中永远不会“已经初始化”。移动构造函数只是一个将右值类型的单个参数引用到同一类的构造函数。

标签: c++ move-semantics reference-counting


【解决方案1】:

我想可以使用放置构造,但这样做是自找麻烦。我什至不知道我为什么提到它。简短的回答:不,它不能。移动构造函数与其他构造函数的区别仅在于它们接受的值的类型。

【讨论】:

    猜你喜欢
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 2020-11-07
    • 2013-07-12
    • 1970-01-01
    相关资源
    最近更新 更多