以下代码安全吗,或者在构造 C
后,m_s
可能是悬空引用?
class C {
public:
C(string&& s) : m_s{s} {}
private:
string& m_s;
};
最佳答案
不,这不安全,请考虑以下示例:
C c(std::string("42"));
在构造函数中传递一个临时值。这样您就可以创建一个悬空引用。
关于c++ - 在成员引用中存储 move 的对象是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36198764/