質問

ブーストには両方があります enable_ifdisable_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> {
};
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top