假设我的函数有两个模板类参数,如:
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相同。我该如何找到?
答案 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 {};