tl;dr: D で完全転送を行うにはどうすればよいですか?
リンクにはすばらしい説明がありますが、たとえば、次の方法があるとします。
void foo(T)(in int a, out int b, ref int c, scope int delegate(ref const(T)) d)
const nothrow
{
}
bar()
の代わりにfoo()
呼び出すことができる別のメソッドを作成するにはどうすればよいfoo()
ですか?
素朴なアプローチ
auto bar(T...)(T args)
{
writeln("foo() intercepted!");
return foo(args);
}
、、、、メソッドの-ness、-ity 、ref
などを処理しないため、もちろん機能しません。また、r値で値を使用する方法も制限されます。in
out
inout
const
pure
nothrow
そして、これらの可能性のあるケースを処理する方法がわかりません...何かアイデアはありますか?