C++0xに望むこと

TMP(テンプレートメタプログラミング)をやったことがある人なら

誰もがほしいと思うであろうもの



1.テンプレート引数にdouble

template <double f>
struct hoge {
...
};


template <>
struct hoge<0.0> {
...
};


2.enum、定数にdouble

enum { pi = 3.14 };


static const double pi = 3.14;


現在の言語仕様だと「doubleは静的型ではありません」エラーとなる

使えるのはintとbool



ex.switch文に使用できる型を、operator==が定義されたクラスにする


これが書きたい

string s;

switch (s) {
case "abc":
 ...
}
vector<string> v;

switch(find(v.begin(), v.end(), "a")) {
case v.end():
    // 該当なし
    break;

default:
    // 該当あり
    break;
}


こういうことができればおもしろいことができると思うのだが・・・