そのようなコードに遭遇しました。
MyClass MyClass::get_information (const some_datastructure *record)
{
auto_ptr<MyClass > variable (new MyClass ());
variable ->set_article_id(record->article_id);
return *variable.get();
}
これが MyClass 型のオブジェクトの (コピー?) を返すことは理解しています。最初は、auto_ptr オブジェクトがスコープ外に出ると破棄されると思っていたので、意味をなさない (?) auto_ptr オブジェクトを返していると思っていました。
とにかく、上記のコードは大丈夫ですか?*variable.get()
関数が戻ったとき/後にオブジェクトは存在しますか?