[Issue 4056] Template instantiation with bare parameter not documented

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon May 24 11:04:51 PDT 2010


http://d.puremagic.com/issues/show_bug.cgi?id=4056


Ellery Newcomer <ellery-newcomer at utulsa.edu> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ellery-newcomer at utulsa.edu


--- Comment #1 from Ellery Newcomer <ellery-newcomer at utulsa.edu> 2010-05-24 11:04:48 PDT ---
(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.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list