【发布时间】:2020-04-16 07:29:47
【问题描述】:
我编写了一个简单的元程序来检查两个模板是否相同。这里是:
template<template<class...> class _Tp, template<class...> class _Up>
struct is_same_template : std::false_type {};
template<template<class...> class _Tp>
struct is_same_template<_Tp, _Tp> : std::true_type {};
它有效(但不适用于 std::array)
is_same_template<std::vector, std::vector>::value // 1
is_same_template<std::map, std::map>::value // 1
is_same_template<std::vector, std::map>::value // 0
is_same_template<std::vector, std::array>::value // Error: type/value mismatch at argument 2
我该如何解决?
【问题讨论】:
标签: c++ c++11 metaprogramming