鍋あり谷あり

テーマを決めずに適当に書いています。

C++の設計と進化

C++の設計と進化を買った。最初の方をちらっと見た感じでは、面白そう。
とはいえ、ハリポタを読了するまで読み始まらない。うーむ。
で。

「ビヨヨーン・ストラウストラウストラウストラップ」とか書いている人が10人はいると思ったのに。

stl の今ひとつなところ。

stl は、結構好きでよく使っているんだが、嫌いなところがひとつある。
それは、メンバの名前。
vector とか multimap 等のクラス名は悪くないんだが。
例えば。
出現頻度の非常に高い const_iterator の綴りが長すぎる。itor_c ぐらいにしておけばいいのに。
pair のメンバが first と second なのも気に入らない。こちらは長いことではなく、first が5文字で second が6文字と、長さが違うのが不愉快。m0, m1 とかににしておけばいいのにと思う。

まあだからといって stl のソースに手を入れたりはしないけど。

可変長引数の話

http://d.hatena.ne.jp/Nabetani/20050828#c1125242314
への返信。
(ここで文体が変わり)
相変わらず、
http://d.hatena.ne.jp/Nabetani/20050823#c1124987740
に書いてくださった、

Boost::MPL で(中略)template だけで可変長引数を使用する template は作れる

が、すごく気になってます。
で。教えて君みたいで申し訳ないんですが、
http://d.hatena.ne.jp/Nabetani/20050828#c1125242314
に書いてくださった

内部的にもプリプロセッサなしでできるはずですがあまりに力技になりすぎるのでプリプロセッサに任せた

の「力技」というのは、

  1. 機械的に生成できるソースをプリプロセスに頼らずに人間が書くこと
  2. C++template を複雑怪奇に使いこなし、コンパイラに対する嫌がらせかと思うようなソースを書くこと
  3. 上記以外

のどれでしょう??

1. なら書けること自体には疑問がありませんが、template とは関係のない普通の関数でも同様ですね。
2. なら、どんな template を書けば mpl::list のようなものが実現できるのか、非常に興味があります。
3. は、想定していませんが、一応用意しておきました。