Why this could not compile? struct Foo(T) {} Foo!(ref int) foo; Output: Error: expression expected, not 'ref' Error: found 'int' when expecting ')' following template argument list Error: no identifier for declarator Foo!(0) Error: semicolon expected, not ')' Error: found ')' instead of statement