[Issue 10663] New: Mixin int not converting
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Jul 17 17:10:53 PDT 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10663
Summary: Mixin int not converting
Product: D
Version: D2
Platform: x86_64
OS/Version: Linux
Status: NEW
Severity: trivial
Priority: P2
Component: Phobos
AssignedTo: nobody at puremagic.com
ReportedBy: alienballance at gmail.com
--- Comment #0 from Mariusz Gliwiński <alienballance at gmail.com> 2013-07-17 17:10:51 PDT ---
I know i should minimise it more, but i'm too tired already. And dpaste just
stopped working :(
DMD v2.063.2
[CODE]
import std.conv;
struct StateRunning{}
struct StateDisposer{}
template Declaration(uint idx, T)
{
enum Declaration =
"const("~T.stringof~")* _s"~idx~";";
//text("const(",T.stringof,")* _s",idx,";");
}
template DeclarationMulti(T...)
{
template Loop(string ret,size_t i,Args...)
{
static if( Args.length == 0 )
{
enum Loop = ret;
}
else
{
enum Loop = Loop!(ret~Declaration!(i,Args[0])~"\n", i+1, Args[1..$]);
}
}
enum DeclarationMulti = Loop!("",0,T);
}
struct State(T...)
{
mixin(DeclarationMulti!(T));
void test(T args)
{
foreach( i, arg; args )
{
mixin("_s"~to!string(i)) = &arg;
}
}
}
void main(string[] args)
{
StateRunning r;
StateDisposer d;
State!(StateRunning,StateDisposer) s;
s.test(r,d);
}
[/CODE]
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list