xxxxxxxxxx
struct Foo {
ubyte[1024] data;
this(int a)
{
data[0] = cast(ubyte)a;
}
}
void doSomething(ubyte u);
void foo(T)(auto ref T t) {
import std.functional: forward;
doSomething(gfoo.data[0]);
bar(forward!t);
doSomething(gfoo.data[0]);
}
__gshared Foo gfoo;
void bar(T)(T t) {
import std.algorithm.mutation : move;
doSomething(gfoo.data[0]);
move(t, gfoo);
}
void main() {
foo(Foo(10));
}