以下を実行すると、タイトなループで大きなパフォーマンスの違いが見られます。
MyObject foo = bar.GetObject();
対
MyObject* foo = bar.GetObjectPtr();
クラス関数の詳細は次のとおりです。
class MyClass
{
MyObject someobject;
MyObject& GetObject() { return someobject; }
MyObject* GetObjectPtr() { return &someobject; }
} bar;
最初の行の割り当ては、2 番目の行よりもかなり遅くなります。誰かが何が起こっているのか説明できますか? これは、デフォルトのコピー割り当てと関係がありますか?