I've wrote a simple metaprogramm that checks whether 2 templates are the same. Here it is:
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 {};
And it works (but not with 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
How can I fix it?
Aucun commentaire:
Enregistrer un commentaire