0

質問は些細なことかもしれませんが、関連する回答はまだ見つかりませんでした。私のコード例:

#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.amoved_obj.cが変わらないのはなぜですか?

4

0 に答える 0