On Monday, 15 July 2019 at 14:15:41 UTC, Stefan Koch wrote:
On Monday, 15 July 2019 at 13:40:29 UTC, Ben Ogles wrote:
I have written a simple function that can call another
function over integral types with random arguments:
[...]
You cannot. meta-programming and compile-time evaluation are
supposed to be deterministic,
and hence cannot take random values.
Sorry, I wasn't clear. The code I wrote does not actually
_produce_ the random values at compile time. It is just a
template that evaluates to a function call where each argument is
given as `gen_rand_integral()`. So if I call
call_with_rand!(add)();
It will expand to
add(gen_rand_integral!(int)(), gen_rand_integral!(int)());
But I want a way to expand this to
add(gen_rand_integral!(int)(), user_defined_generator!(int)());