たぶんNRVOが効いてるはず。
#include <iostream> using namespace std; class Foo { private: int i; public: Foo(int i); }; Foo::Foo(int i) : i(i) {} Foo func() { return Foo(100); } int main() { Foo foo = func(); cout << &foo << "\n"; return 0; }
たぶんNRVOが効いてるはず。
#include <iostream> using namespace std; class Foo { private: int i; public: Foo(int i); }; Foo::Foo(int i) : i(i) {} Foo func() { return Foo(100); } int main() { Foo foo = func(); cout << &foo << "\n"; return 0; }