Например, у меня есть код вроде:
template<typename A, typename B>
using Map = std::map<A, B>;
template<typename A, typename B>
using UnorderedMap = std::unordered_map<A, B>;
Я хотел бы сделать то же самое для std::array
, то есть:
template<typename A, typename B>
using Array = std::array<A, B>;
Но если я сделаю это, яполучит ошибку компилятора:
ошибка C2993: «B»: недопустимый тип для нетипичного параметра шаблона «_Size»
ошибка C2955: «std :: array»: использоватьшаблона класса требуется шаблон
массив списка аргументов (21): сообщение: см. объявление 'std :: array'
Есть ли способ объявить Array
, который бына заднем плане используйте std::array
?
В конце я хочу использовать массивы типа Array<int, 7> items
вместо std::array<int, 7> items
.