This is not a question about template template syntax meaning, but rather a question about why this syntax was chosen by C++ standard committee. Lets take this example,
(1)
template< typename T>
Class A
{
...
}
The above one is syntax of a class template syntax with single template argument. I can understand this syntax is something c++ committee can choose arbitrarily.
(2)
template<template <typename> typename T>
class B
{
...
}
C++ standard committee should have built (2) syntax using (1) with some language standard/ grammar. I could not understand how (2) was built using (1).
If given a choice I would have chosen the below as template template syntax,
(3)
template <typename template< typename T>> //my way of writing syntax (but not recognized by standard)
The inner template<typename T>
in above is a template datatype, so a template of that should be written template<typename template<typename T>>
Can anyone explain why the language committee chose (2) instead of (3)
There is a similar question Syntax of C++ Template Template Parameters which doesn't clarify these