如何判断两个模板类是否相同

时间:2015-03-15 00:03:40

标签: c++ templates

假设我的函数有两个模板类参数,如:

template <template <typename...> C1, template <typename...> C2>
constexpr bool is_same_container() {
    return std::is_same<C1, C2>::value;
}

is_same_container<std::vector, std::vector>();

编译时,编译器会抱怨C1和C2需要提供模板参数。

我的问题是有没有办法直接比较两个未参数化的模板类?

std :: vector应与std :: vector相同。我该如何找到?

1 个答案:

答案 0 :(得分:3)

当然,只要写下自己的特质。

template<template<class...> class C1, template<class...> class C2>
struct is_same_template : std::false_type {};

template<template<class...> class C>
struct is_same_template<C,C> : std::true_type {};