Compiler Error C2993

'identifier' : template parameter can never be initialized

There was an attempt to declare a structure or union argument to a template. The structure or union cannot be initialized. Use pointers to pass structures and unions as template parameters. The following code generates this error:

struct MyStruct {
   int a;char b;
};
template <class T, struct MyStruct S> {};  // error