std::shared_ptr
に対する推定ガイド
提供: cppreference.com
< cpp | memory | shared ptr
C++
言語 | ||||
標準ライブラリヘッダ | ||||
フリースタンディング処理系とホスト処理系 | ||||
名前付き要件 | ||||
言語サポートライブラリ | ||||
コンセプトライブラリ(C++20) | ||||
診断ライブラリ | ||||
ユーティリティライブラリ | ||||
文字列ライブラリ | ||||
コンテナライブラリ | ||||
イテレータライブラリ | ||||
範囲ライブラリ(C++20) | ||||
アルゴリズムライブラリ | ||||
数値演算ライブラリ | ||||
ローカライゼーションライブラリ | ||||
入出力ライブラリ | ||||
ファイルシステムライブラリ(C++17) | ||||
正規表現ライブラリ(C++11) | ||||
アトミック操作ライブラリ(C++11) | ||||
スレッドサポートライブラリ(C++11) | ||||
技術仕様書 |
ユーティリティライブラリ
|
動的メモリ管理
|
std::shared_ptr
メンバ関数 | ||||
変更 | ||||
観察 | ||||
(C++17) | ||||
(C++20未満) | ||||
非メンバ関数 | ||||
(C++20未満)(C++20未満)(C++20未満)(C++20未満)(C++20未満)(C++20) | ||||
関数 (C++20で非推奨) | ||||
(C++20) | ||||
推定ガイド(C++17) |
ヘッダ <memory> で定義 | ||
template<class T> shared_ptr(std::weak_ptr<T>)-> shared_ptr<T>; | (1) | (C++17以上) |
template<class T, class D> shared_ptr(std::unique_ptr<T, D>)-> shared_ptr<T>; | (2) | (C++17以上) |
暗黙の推定ガイドでカバーされないエッジケースに対処するため、 std::shared_ptr に対してこれらの推定ガイドが提供されます。
配列形式の new
と非配列形式の new
のいずれから取得されたポインタか区別できないため、ポインタ型からのクラステンプレート引数推定はありません。
[編集]例
Run this code
#include <memory> int main(){auto p =std::make_shared<int>(42);std::weak_ptr w{p};// explicit deduction guide is used in this casestd::shared_ptr p2{w};// explicit deduction guide is used in this case}