C ++ 0xのDisable_ifはどこにありますか?
質問
ブーストには両方があります enable_if
と disable_if
, 、しかし、C ++ 0xが後者を欠いているようです。なぜそれは取り残されたのですか? C ++ 0xにメタプログラミング施設はあります。 disable_if
の面では enable_if
?
ああ、私はちょうどそれに気づいた std::enable_if
基本的にです boost::enable_if_c
, 、そして、そのようなものはありません boost::enable_if
C ++ 0x。
解決
愚かに見えるリスクがあるので、ただそうしてください !expression
それ以外の expression
ブールテンプレートパラメーターで enable_if
のように振る舞わせる disable_if
?もちろん、そのアイデアが機能する場合、それを拡張してクラスを書くことができます disable_if
- 動作のような?
わかりました、私はあなたが実装できると信じています disable_if
このような:
template <bool B, typename T = void>
struct disable_if {
typedef T type;
};
template <typename T>
struct disable_if<true,T> {
};
所属していません StackOverflow