Это означает, что CreationPolicy
также должен быть шаблоном, который принимает один параметр типа. Вы можете думать об этом как о шаблонном эквиваленте указателей функций или обратных вызовов.
Как вы можете видеть в этом примере, CreationPolicy
используется с аргументом:
CreationPolicy<SomeType>
Это было бы невозможно, если бы CreationPolicy
не был объявлен как «параметр шаблона шаблона» (да, это действительно так они называются.)