An idea to improve eponymous templates

Nathan M. Swan nathanmswan at gmail.com
Wed Apr 11 21:27:59 PDT 2012


On Thursday, 12 April 2012 at 02:21:46 UTC, Reid Levenick wrote:
> Firstly, I had no idea where suggestions should go, and I saw a 
> few others here and thus here I am.
>
> I was writing some code that depended heavily on my own 
> eponymous templates, and decided to change the names of some of 
> them to make them more self-documenting. However, after 
> changing the name, I encountered a long stream of 
> unintelligible errors (to me, I haven't been using D for a long 
> time) about template instances.
>
> So, my idea is that the 'this' keyword could be used in 
> templates as a shortcut for eponymous templates, allowing code 
> like this
>
> template anEponymousTemplate( size_t whatever ) {
>   enum this = whatever * 2;
> }
> template anotherOne( T ) {
>   static if( is( T == class ) ) {
>     alias long this;
>   } else {
>     alias int this;
>   }
> }
>
> Which would reduce cruft and make it easier to read some 
> templates, as well as reducing maintenance.

I like the idea. To get rid of any confusion with keywords, 
name-mangling, or classes, I suggest having "this" being 
syntactic sugar for the name of the template.

NMS



More information about the Digitalmars-d mailing list