Say I have a class
struct Vector (ElementType, uint Dimension) { ... }
representing a fixed-dimensional vector along with these shorthands
alias Vector!(float, 2) vec2;
alias Vector!(float, 3) vec3;
alias Vector!(float, 4) vec4;
alias Vector!(double, 2) vec2d;
alias Vector!(double, 3) vec3d;
alias Vector!(double, 4) vec4d;
alias Vector!(int, 2) vec2i;
alias Vector!(int, 3) vec3i;
alias Vector!(int, 4) vec4i;
can I somehow use D's features to generates these aliases in compile time?
Or is it just for evaluation of functions?
/Per
You could always do it as a mixin.
Generally, if you make a compile time evaluatable function that builds a string of code, you can then mixin(thatFunction(args...)); at some point and make it happen.
When debugging the function, you can just run it at runtime and writeln(thatFunction()) to see what code it generates.