例外安全と言えば「スマートポインタ使おう!」のように,判で押したような答えが返ってくるんだけれども,これはどうなんだろうと思う。そもそも,例外なんか使うもんじゃないとかいった話もあるんだけれども,うまく使えない子は使わない方がいいと思う。例外安全の例に出されるコードを見ていていつも思うんだけれども,まず,リソースを管理する手法にポリシーがない。分かりやすさのためなんだろうけれど,いきなり何も管理されていないポインタにヒープのメモリを割り当てるアホは普通いない。なんかを使っても,いずれリークするプログラムを作ると思う。複数で一組のリソースがある場合で生成-破棄に順番がある場合や,組み合わせによって管理する手続きが変わる場合なんかにおいて,通常のスマートポインタで管理すると却って面倒になる。リソースは,プログラマが管理方針を自分で作る必要があるわけで,通常はそれらをクラスで管理し,リソースの生成-破棄に対する責任は原則としてそのオブジェクトが負う。一般的にリソースに対する管理ポリシーは,スマートポインタだけで構成できるもんではないとゆこと。あと,例外安全をことさら云々する人は,正常系と異常系をそもそも切り分けられていないようにも思う。正常系と異常系を切り分けられないなら,それに対する管理方針を立てられないのも,ま,当たり前だと思う。例外安全とゆ言葉はあってもいいと思うんだけれども,なんだか強調されすぎな感じ。ゆ人は,シグナル安全とか割り込み安全とかいった言葉(ここで作った言葉)にも過剰反応しそう。