假设我们有以下代码:
struct some_class : parent
{
some_class(::other_class oth) :
parent(some_function(oth.some_property), std::move(oth))
{}
};
当然,构造会导致未定义的行为(在我的情况下是崩溃),因为 C++ 没有指定执行顺序。但是,我怎样才能在运动之前检索属性(property)?我不能改变 parent 。
最佳答案
您可以尝试委托(delegate)构造函数:
struct some_class : parent
{
some_class(::other_class oth) :
some_class(some_function(oth.some_property), std::move(oth))
{}
private:
some_class(const ::Foo& foo, ::other_class&& oth) :
parent(foo, std::move(oth))
{}
};
关于c++ - 如何同时使用变量和 move 变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60696954/