C++ 11 n3242「サブオブジェクトの期間、オブジェクトの有効期間」、3.8/1 からのポイント:
オブジェクトの有効期間は、オブジェクトのランタイム プロパティです。オブジェクトがクラスまたは集約型であり、それまたはそのメンバーの 1 つが自明なデフォルト コンストラクター以外のコンストラクターによって初期化される場合、そのオブジェクトは非自明な初期化を持つと言われます[ 注: 自明なコピー/移動コンストラクターによる初期化は非自明です。 -些細な初期化。— エンドノート]
型 T のオブジェクトの有効期間は、次の時点で始まります。
- タイプ T に適した位置合わせとサイズのストレージが取得されます。
- オブジェクトに重要な初期化がある場合、その初期化は完了しています。
タイプ T のオブジェクトの存続期間は、次の場合に終了します。
- T が非自明なデストラクタ (12.4) を持つクラス型の場合、デストラクタの呼び出しが開始されます。
- オブジェクトが占有するストレージは再利用または解放されます。
ここで彼らは、オブジェクトの有効期間を持つ自明または自明でないコピー/移動コンストラクターについて述べました。これをサンプルプログラムで説明できる人はいますか?
また、ポイントの変化は、型のオブジェクトの寿命がいつ始まるかを示していますが、いつ終わるT
かについては言及していません。T
なんで?