I've recently seen people using template instances like: mytemplate!int var; The docs don't say anything about this form, nor do the release notes for that matter. Either it's a bug (I assume not) or the spec needs to document it. I assume this form is only good for single template parameters. Are there other limits on what parameters can be used in this way?
(In reply to comment #0) > I've recently seen people using template instances like: > > mytemplate!int var; > > The docs don't say anything about this form, nor do the release notes for that > matter. Either it's a bug (I assume not) or the spec needs to document it. > > I assume this form is only good for single template parameters. Are there > other limits on what parameters can be used in this way? in template.html, modify TemplateInstance: TemplateIdentifier !( TemplateArgumentList ) to TemplateInstance: TemplateIdentifier !( TemplateArgumentList ) TemplateIdentifier ! Identifier TemplateIdentifier ! BuiltinBasicType TemplateIdentifier ! Literal Literal: null true false __FILE__ __LINE__ NumericLiteral CharacterLiteral StringLiterals but then in declarations.html you'd have to split up BasicType a bit. And yes, this can't work for multiple parameters because the commas would cause ambiguity with Expression. Same for identifier chains: T!A.B == T!(A).B or T!(A.B) ? and extended types: T!i[] == T!(i)[] or T!(i[]) ? etc.
changeset 1564