<T>

テンプレート

Ex00

基本的な関数テンプレート

どんな型でも扱える汎用的な「道具」を作成

swap(a, b)
int ↔ int
2 ↔ 3
min(a, b)
string
"abc"
max(a, b)
float
3.14
Ex01

応用: `iter`とconst正確性

配列を安全に操作する仕組み

A
B
C
const配列 (読み取り専用)
1
2
3
非const配列 (読み書き可能)
Ex02

クラス・テンプレートと例外安全

Copy-and-Swapによる安全な代入

1. Array tmp(other); 一時コピーを作成
2. this->swap(tmp); 内部データを交換
3. tmp.~Array(); 古いデータを安全に破棄