class Myclass
{
public:
Myclass() = default;
~Myclass() = default;
Myclass(Myclass&&) = default;
Myclass& operator=(Myclass&&) = default;
Myclass(const Myclass&) = delete;
Myclass& operator=(const Myclass&) = delete;
int i = 0;
};
Myclass GetObj()
{
Myclass obj;
return obj;
}
Myclass WrapperOfGetObj()
{
Myclass&& Wrapobj = GetObj();
Wrapobj.i = 1; // Will it work?
return std::move(Wrapobj);
}
int main()
{
return 0;
}
いくつか質問があります: 1)WrapperOfGetObj
関数でWrapobj
はxvalue なので、そのメンバーに値を割り当てることができます (xvalue - 期限切れになります!!)
2) のストレージはxvalue
何ですか? これは自動保存ではありませんか?
3)いつにxvalue
なるglvalue
か、いつになるrvalue
か(上記のコンテキストの例は、これを明確にします)。