I was reading a book on templates and found the following piece of code:
template <template <class> class CreationPolicy>
class WidgetManager : public CreationPolicy<Widget>
{
...
void DoSomething()
{
Gadget* pW = CreationPolicy<Gadget>().Create();
...
}
};
I didn't get the nested templates specified for the CreationPolicy (which is again a template). What is the meaning of that weird looking syntax?