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