Qt @福岡 第4回勉強会 で喋ってきました

T/O …と言いたいところだけど、いろいろ補足。

各コンテナのパフォーマンス差について

発表中に出したベンチ結果は1千万要素のint(つまり40MB)とかそういうレベルで、ようやく1sec以下の差になろうかという程度です。その程度の差よりは「楽に安全に使う」ほうが重要です。
# ベンチ結果はinline化を排除したりとかあるので、覚えてればそのうち公開します。STLだけの結果はそろそろstd::dequeについて語ろうか - kikairoya’s diaryを見てください。

例外安全について

C++に限らず、「失敗するかもしれない操作」を行う時にはすべての場面で例外安全の考慮が必要です。基本的な例外安全が提供されてないと、例外が飛んできたときに通常シーケンスへの復帰どころか、正しいエラー終了すら不可能になる場合があります。例外が規定されている言語を扱うすべてのプログラマはExceptional C++, More Exceptional C++を読まなければなりません(MUST)。

CoWについて

GC無しでCoWを安全に実装するのは非常に大変だし、出来たとしてもマルチコアでスケールしないのでCoWが必要になるまではしないのが正解です。

「行儀の悪いコード」について

発表中にも発言した通り、「古くはそれが一般的だったが最早時代にはそぐわない」という意図です。古くから存在しているQtの、当時のコードについて、当時のコンテキストを現代の視点で善悪付けることの愚は理解しているつもりですが、同じようなコードがもしもここ数年の間に新しく書かれていたとしたらそれは容赦なくdisります。

発表に使ったスライドはこちら。qtf4.pdf