Damn C++ and damn D!

Timon Gehr timon.gehr at gmx.ch
Sun Feb 5 06:57:57 PST 2012


On 02/05/2012 03:53 PM, so wrote:
> On Sunday, 5 February 2012 at 14:24:20 UTC, Timon Gehr wrote:
>
>> This should work:
>>
>> #define DOTDOTDOT ...
>>
>> template<class T> void fun(T a){
>> if(cond<T>::value) {
>> auto var = make(a);
>> DOTDOTDOT;
>> }else{
>> auto tmp = make(a);
>> auto var = make_proxy(tmp);
>> DOTDOTDOT;
>> }
>> }
>
> It won't work.
> You now have two scopes and you have to repeat every line after "var"
> for both scopes.  Now you have to maintain both of them.

You just maintain the macro.

> And this grows
> exponentially for every new condition you have.
>

It certainly has limits. I completely agree that C++s generic 
programming facilities are severely underpowered.



More information about the Digitalmars-d mailing list