April 05, 2017
On Monday, 3 April 2017 at 23:10:49 UTC, Stefan Koch wrote:
> On Monday, 3 April 2017 at 11:18:21 UTC, Nicholas Wilson wrote:
>>    prefer template over string mixins where possible. This will make the code much more readable.
>
> My advise would be the opposite.
> templates put much more pressure on the compiler then string-mixins do.
> Also the code that templates expand to is hard to get.
> Whereas the code that string mixins expand to can always be printed one way or another.

Could you elaborate more about this (i.e. show where mixins is more readable, debugable and less stressful to the compiler)  ? This kind of information is good for tuning stage later. My goal now is to finish the conversion and running of the header and the test code (https://github.com/attractivechaos/klib/blob/master/test/khash_test.c).

@Ali:
I noticed the -E option recently but haven't really used it. I now generated the pre-processed source and try to make use of it.
April 05, 2017
On Wednesday, 5 April 2017 at 12:27:23 UTC, biocyberman wrote:
> On Monday, 3 April 2017 at 23:10:49 UTC, Stefan Koch wrote:
>> On Monday, 3 April 2017 at 11:18:21 UTC, Nicholas Wilson wrote:
>>>    prefer template over string mixins where possible. This will make the code much more readable.
>>
>> My advise would be the opposite.
>> templates put much more pressure on the compiler then string-mixins do.
>> Also the code that templates expand to is hard to get.
>> Whereas the code that string mixins expand to can always be printed one way or another.
>
> Could you elaborate more about this (i.e. show where mixins is more readable, debugable and less stressful to the compiler)  ? This kind of information is good for tuning stage later. My goal now is to finish the conversion and running of the header and the test code (https://github.com/attractivechaos/klib/blob/master/test/khash_test.c).
>
> @Ali:
> I noticed the -E option recently but haven't really used it. I now generated the pre-processed source and try to make use of it.

While Stefan correctly notes that templates are slower than string mixins I generally find templates easier to read.
In terms of debugability:
you can pragma(msg, myGeneratedString) to see the generated code;
the error messages you get from templates are slightly more difficult to read than normal error messages in that you have to figure out what the significance of a particular parameter is (is it missing a method or operator? is it a struct instead of a class?), properly constraining the templates helps with this although the compiler is usually pretty good.
1 2
Next ›   Last »