给定一个模板参数,如何确定这是否实际上是一个参数化模板类?

时间:2015-03-15 01:29:19

标签: c++ templates

说我有以下代码。

template <template <typename...> class C, typename T>
constexpr bool is_vector() {
    return is_same<C<T>, vector<T>>::value;
}

template <typename Value, enable_if_t<is_vector<???>()>>
void my_function(Value &value) {
}

如何调用is_vector以检查Value是否是std :: vector类模板的实例?

1 个答案:

答案 0 :(得分:3)

通常的方法是写另一个特质......

template<class C>
struct is_vector : std::false_type {};

template<class T, class A>
struct is_vector<std::vector<T,A>>: std::true_type {};