<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();
→
古いデータを安全に破棄