Creating variable name with variables

okibi okibi at ratedo.com
Mon Apr 23 12:10:09 PDT 2007


BCS Wrote:

> okibi wrote:
> > Hello,
> > 
> > I was wondering if it is possible to create a variable name with other variables. For example:
> > 
> > char[] left = "num1";
> > char[] right = "num2";
> > 
> > char[] num1num2 = "doesn't matter what this equals";
> > 
> > How would I create the variable with the values of the first two variables?
> > 
> > Thanks!
> 
> you can't unless left and right are const. If they are you have several 
> options:
> 
> mixin("char[] "~left~right~";")
> 
> then use mixin(left~right) for the variable
> 
> another option is a total hack
> 
> template Value(T, char[] str) { T Value; }
> 
> Value!(char[], left~right) = "hello";
> writef("%s\n", Value!(char[], left~right));
> 
> I haven't actually tried that usage, but you can make it work for some 
> cases. The advantage of it is that you can do it with D v1.0

They won't be const so that first method is out. I'll give the second method a go and see if it works.

Thanks!


More information about the Digitalmars-d-learn mailing list