Preprocessor macro with variadic args dropped without warning
jblachly opened this issue · comments
The following line:
#define sam_hdr_update_hd(h, ...) sam_hdr_update_line((h), "HD", NULL, NULL, __VA_ARGS__, NULL)
Is dropped silently without warning, I believe due to ...
variadic arguments, or __VA_ARGS__
symbol.
No need to deal with variadic macros, but a warning is important so it can be added by hand.
Kind regards
It seems the only problem is the variadic arguments, so hopefully it should be easy to fix.
Off-topic for dstep specifically but when I fixed this by hand it was my first experience with variadic templates in D and I was blown away by compile time sequences.
the fact that I could write
auto sam_hdr_update(T, A...)(T h, A a) {
sam_hdr_update_line(h, "HD", null, null, a, ull);
}
and it just magically works calling the C variadic fn was really impressive. I even added a static assert to make sure the length of A was an even number at compile time.
Yeah, it's pretty awesome.