GCC 4.8.4 を使用して Ubuntu 14.04 を使用しており、次のようなコードがあります。
std::shared_ptr<MyClass> my_shared_object = set elsewhere...
MyFunction(*my_shared_object);
の署名MyFunction
は次のようになります。
void MyFunction(const MyClass& my_object)
完全なコードはここにあります
ただし、 my_object のコンテキスト内で実際には範囲外になることがわかっていますMyFunction
。私の考えでは、は範囲外になった後、つまりが戻ったmy_shared_object
後にのみコンテンツをリリースするというものでした。MyFunction
私が誤解しているstd::shared_ptr
のか、それとも GCC のバグなのかはわかりません。
質問は次のように要約できると思います: std::shared_ptr を逆参照すると、逆参照が使用されている限り、それが持続することが保証されますか?std::shared_ptr