Is there a template syntax for alias-of-member?
    Russell Lewis 
    webmaster at villagersonline.com
       
    Fri Mar  7 07:26:27 PST 2008
    
    
  
Here's what I'm trying to do.  I want to build a template which takes, 
as its first parameter, a type, and then takes one or more aliases to 
member names.  In other words, the user of the template would write 
something like this:
BEGIN CODE (that doesn't work)
	struct s
	{
		int x;
	}
	void main()
	{
		magic_template!(s, x);
	}
END CODE
However, I can't figure out how to do it.  Right now, I'm stumbling 
along with string mixins, as follows:
BEGIN CODE
	template foo(T,string member)
	{
	  T *of()
	  {
	    T *ret = new T;
	    mixin("ret." ~member~ "= 1;");
	    return ret;
	  }
	}
	struct s
	{
	  int x;
	}
	import std.stdio;
	void main()
	{
	  auto tmp = foo!(s,"x").of();
	  writefln(tmp.x);
	}
END CODE
Does anybody know of a more elegant way to do this?
    
    
More information about the Digitalmars-d-learn
mailing list