Шаблон шаблонного параметра в C++
Шаблон шаблонного параметра позволяет передавать в шаблон не готовый тип, а семейство шаблонов, из которого потом собирают тип, например контейнер целых.
Запись template<template<typename> class C>
ожидает имя класса-шаблона с одним параметром типа.
Запишем функцию, принимающую C<int>,
и выведем размер вектора:
#include <iostream>
#include <vector>
template<template<typename> class C>
void showSize(C<int> data) {
std::cout << data.size() << "\n";
}
int main() {
std::vector<int> nums{1, 2, 3};
showSize(nums);
return 0;
}
Объявите такую же showSize и передайте
ей std::vector<int> из 4
элементов. Выведите размер.