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.