質問は些細なことかもしれませんが、関連する回答はまだ見つかりませんでした。私のコード例:
#include <iostream>
struct ExampleStruct {
int a;
std::string b;
double c;
};
ExampleStruct&& getExampleStruct() {
ExampleStruct obj;
obj.a = 1;
obj.b = std::string("asdf");
obj.c = 1.43;
return std::move(obj);
}
int _tmain(int argc, _TCHAR* argv[]) {
ExampleStruct&& moved_obj = getExampleStruct();
// moved_obj.a == 1
// moved_obj.b == ""
// moved_obj.c == 1.43
return 0;
}
moved_obj.b
が空になっているのに、moved_obj.a
とmoved_obj.c
が変わらないのはなぜですか?