6
鑑於移動一個shared_ptr來調用的對象上的shared_ptr點的方法
struct X {
void f(std::shared_ptr<X>);
};
auto x(std::make_shared<X>());
我也許可以安全地在做
x->f(std::move(x));
C++ 17,因爲x->f
的參數X::f
之前評估是建造的,對吧?據我所知,在早期版本的C++中沒有這樣的保證。我如何在C++ 11和C++ 14中實現類似的功能?
PS:注意即使使用std::unique_ptr
代替std::shared_ptr
也是如此。
這也意味着這個問題是否可以安全地銷燬對象在同一個對象的成員函數的範圍之內/之內。出於好奇:你爲什麼想這麼做? – Pixelchemist