C++: template template parameters
Author: masatakeCreated Mar 11, 2026Updated Mar 11, 2026
// Taken from https://dexall.co.jp/articles/?p=1898#i-8
#include <vector>
template<
typename T,
template<typename, typename> class Container = std::vector
>
class DataStructure {
Container<T, std::allocator<T>> data;
public:
void add(const T& value) {
data.push_back(value);
}
};[yamato@dev64]/tmp% ~/bin/ctags -x --sort=no --kinds-C++='*' --extras=+r -o - /tmp/baz.cpp
vector header 2 /tmp/baz.cpp #include <vector>
DataStructure class 8 /tmp/baz.cpp class DataStructure {
T tparam 5 /tmp/baz.cpp typename T,
...ctags extracts T. It doesn't Container.
Source: universal-ctags/ctags