Hello,

I was wondering if there would be some way to verify arguments to a function at compile time, but at runtime call only one function (in D2).

To clarify what I mean:

Say you have something like printf()

printf(const char[] format, ...)

I want to be able to make sure the arguments passed into the varadic part match what the format string says at compile time. I could do this with a template, but then it generates a new printf() function for each combination of arguments, and I'm trying to avoid that. It might be possible to solve this with a mixin as well, but I'd like to avoid writing:

    mixin(SomeFunc!("args", t1, t2, t3))

(Maybe alias would be useful? My D skills aren't that great yet)

I would like it to be more like a regular function call

    SomeFunc("format", t1, t2) // Or something similar

If there's no good way to do this that's fine.

I bring this up because I saw

https://github.com/xomboverlord/xomb/blob/unborn/kernel/core/kprintf.d

which was neat, but it generates a new kprintf function for different arguments. I thought it'd be interesting to try and have the benefits of compile time checking without the extra generated code.

Thank you

Reply via email to