template<typename T> struct moge {
struct hage{ using type = T; };
};

template<typename T>
std::enable_if_t<std::is_same<T, typename moge<typename T::type>::hage>::value>
hoge(T) {};