Map one tuple to another Tuple of different type
Daniel Gibson via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Jul 20 18:42:58 PDT 2014
Am 21.07.2014 03:34, schrieb Vlad Levenfeld:
>
> You're very welcome. The reason foreach(int i, x; argTuple) failed is
> because argTuple is a value (of type T), and so known only at run-time.
Hmm but the only thing the compiler would need to know at compile-time
is still i, which only depends on argTuple.length which is known at
compile-time.
But ok, I can kinda understand that this doesn't work, probably foreach
either operates completely on compile-time stuff (and does so
statically) or completely on runtime-stuff, done dynamically.
> To get a foreach to run at compile-time, you have to give it something
> whose value is known to the compiler (so, T and typeof(argTuple) would
> suffice, and 0..T.length really should as well).
Yup
>
> A nice way to test is "pragma(msg, Foo)" where Foo is your argument...
> if its knowable at compile-time, then your compiler should output "Foo"
> (or the name of whatever its aliasing) to the console.
Thanks for the advice!
Cheers,
Daniel
More information about the Digitalmars-d-learn
mailing list