Exceptional coding style

mist none at none.none
Wed Jan 16 11:29:58 PST 2013


On Wednesday, 16 January 2013 at 19:06:47 UTC, Mehrdad wrote:
> On Wednesday, 16 January 2013 at 18:57:06 UTC, mist wrote:
>>
>> This is a single template operator in D so it kind of solves 
>> the problem. First is tricky, but is exactly the reason 
>> sometimes types from external libs are used only via 
>> alias/typedef. I'd prefer something like 
>> :%s/boost::unord/std::unord/g though :) But well, if you are 
>> working with C++, then templates and mixins will hardly solve 
>> most problems of course, because C++ templates sucks and 
>> mixins do not even exist there.
>
>
>
> Yeah I'm working in C++, not D.
>
>
> But even if I was using D, there's no way in heck that I would 
> use a _MIXIN_ for that:
>
> mixin("I'm not sure how this is supposed too be 
> readable").unordered_map!(int) a;
>
> makes no sense to me at all, when I could just as well have 
> said 'boost'.
>
>
>
> Also, the search/replace thing won't work so well for any 
> real-world example (the second one is a lot closer to what I 
> had in mind... you can't just replace "T" with "T, U" and 
> expect it to work).
>
>
> So my point is: no, it's not a simple matter of abstracting 
> things away. Lined-up text really DOES make certain tasks 
> easier than they would be otherwise.

Mixins and templates are tools to avoid copy-paste, there is no 
point to using them just for the sake of that. I have already 
mentioned that first example is not related to copy-paste and 
thus not fixable with that, it is more related to alias. Second 
is fixed perfectly in D using string mixins and single template 
unary operator with much more readable code.

My point is - when you have a lot repetitive text pieces in your 
code, it is much better in longer scope to use advanced language 
tools instead of advanced editing tools. And this is one place 
where D is so superior do C++. I must admit I'd prefer to have 
template mixins allowed for statements to minimize string mixin 
usage but it is still much much better than copy-paste in my 
opinion.


More information about the Digitalmars-d mailing list