Typed variadic template syntax?

Ilya Yaroshenko ilyayaroshenko at gmail.com
Thu Jan 30 09:15:46 PST 2014


On Thursday, 30 January 2014 at 17:12:51 UTC, Etienne wrote:
> On 2014-01-30 10:28 AM, Timon Gehr wrote:
>> import std.typetuple, std.stdio;
>> void main(){
>>     foreach(i; TypeTuple!(1,2,3)){
>>         mixin("int num"~i.stringof~";");
>>     }
>>     num1=1;
>>     num2=2;
>>     num3=3;
>>     writeln(num1,num2,num3);
>> }
>>
>>
>
> This written as a static foreach or declarative foreach, would 
> be awesome if it exposed the scope. For now the only solution 
> is to build a string and mixin the string like this
>
> string fct(R)(){
> 	string str;
> 	foreach (range ; R)
> 		str ~= "int num " ~ range.stringof ~ ";";
>
> 	return str;
> }
>
> mixin(fct!(TypeTuple!(1,2,3));
> writeln(num1,num2, num3);
>
> Looks a little less convenient than
>
> static foreach ( i; 0..3 )
> 	mixin("int num" ~ i.stringof ~ ";");
> writeln(num1,num2, num3);

It works now:
     mixin(format("%(int num%s; %);", [1,2,3])); //<----
     writeln(num1,num2,num3);


More information about the Digitalmars-d mailing list