3
クラスに特定のサブクラス/タイプがある場合は、SFINAEのトリックを知ることができますか?何かのように、後クラスにサブクラス/型が含まれているかどうかを調べる方法は?
template<typename TYPE> // searches for "my_type"
struct has_inner_type {
enum { value = <???> };
};
は例です:
struct A {
class my_type {}; // has_inner_type::value = true
};
struct B { }; // has_inner_type::value = false
struct C { typedef int my_type; }; // has_inner_type::value = true
私はいくつかのトリックを試してみましたが、ほとんど期待コンパイルエラーと短い落ちます。 使用法:
bool b = has_inner_type<A>::value; // with respect to "my_type"
編集:それはhas_inner_type
に2番目のパラメータとしてmy_type
を渡すことは不可能だと思えるように私は、私の質問を再編集しました。だから今のところ質問は特定のタイプだけを見つけることですmy_type
。私はtried this codeを持っていますが、これはうまくいきません。
特定の名前の内部型か内部型かを知りたいですか? –
エラーは何ですか? – AJG85
@Martinho、私は私の質問を再編集しました。私は指定された名前だけで検索したい。ご迷惑をおかけして申し訳ありません。 @ AJG85、私はそれを実装する正しい方法を見つけることができないので、エラーは明らかです。そのようなエラーは言及する価値がありません。まだそれに取り組んでいます。 – iammilind