Function templates with more than one declaration?
boyd
gaboonviper at gmx.net
Mon Apr 14 11:12:37 PDT 2008
Would a function template work in this case perhaps?
Atom atom(string name)(){
static Atom myAtom;
myAtom = Atom(name);
return myAtom;
}
Cheers,
Boyd
-------
On Mon, 14 Apr 2008 19:59:46 +0200, Brian Palmer <d at brian.codekitchen.net>
wrote:
> I'm building a simple atom (symbol, whatever) library for a project, but
> I'm not really satisfied with my syntax for static atom literals. My
> template:
>
> template atom(string name) {
> static Atom myAtom;
> static this() { myAtom = Atom(name); }
> Atom atom() { return myAtom; } /* Hopefully this will be inlined,
> haven't tested that yet... */
> }
>
> usage:
>
> Atom name = atom!("name").atom;
>
> The ideal, in my mind, would be to create Atom literals with the same
> Atom("name") syntax usable for creating Atoms at runtime. I'm pretty
> sure that won't be possible until templates can override functions,
> though. But I'd at least like to get rid of that last spurious `.atom`
> at the end of the declaration. Has anybody run into this situation
> before? What's the reason for only allowing "Implicit Template
> Properties" when the template declares exactly one member, anyway?
--
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
More information about the Digitalmars-d-learn
mailing list