compile-time variables?
Robert Fraser
fraserofthenight at gmail.com
Fri Jun 1 21:08:01 PDT 2007
SMAAART! Thanks!
vsb Wrote:
> May be this helps you.
>
> char[] int2str(int n) {
> if (n == 0)
> return "0";
>
> char[] result = "";
> int m = 1;
> while (m <= n)
> m *= 10;
> m /= 10;
> while (m > 0) {
> result ~= '0' + n / m;
> n %= m;
> m /= 10;
> }
>
> return result;
> }
>
> char[] unique_var(char[] type, char[] pref, int n) {
> char[] name = pref ~ int2str(n);
>
> return
> `static if (is(typeof(` ~ name ~ `))) { `
> ` mixin(unique_var("` ~ type ~ `", "` ~ pref ~ `", ` ~ int2str(n + 1) ~ `));`
> `}`
> `else {`
> ` ` ~ type ~ ` ` ~ name ~ `;`
> `}`;
> }
>
>
> void main()
> {
> mixin(unique_var("int", "n", 0));
> n0 = 1;
> mixin(unique_var("int", "n", 0));
> n1 = 2;
> }
More information about the Digitalmars-d
mailing list