jeudi 16 avril 2020

How to get template of std::array?

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