Можем ли мы иметь трюк 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"
Редактировать : я заново отредактировал свой вопрос, поскольку кажется, что невозможно передать my_type
в качестве второго параметра в has_inner_type
.Итак, на данный момент вопрос состоит в том, чтобы найти только определенный тип как my_type
.Я попробовал этот код , который не работает.