我有一个类A
,它将另一个类B
作为模板参数,我需要获取B
的构造函数(有点伪代码):
class A(B)
{
import std.typecons : Tuple;
import std.traits : Parameters;
Tuple!(Parameters!B) _args;
this(Parameters!B args)
{
_args = args;
}
}
存储构造函数的参数,然后构造一个类B
的对象,其参数存储在_args
中。
这几乎就是Command模式。
有没有办法让B
的构造函数获得Parameters
?
或者有更好的方法来实现延迟对象构建吗?
答案 0 :(得分:4)
是的,构造函数的内部名称是__ctor
:
class C
{
this(int a, string b) { }
}
import std.traits;
pragma(msg, Parameters!(C.__ctor));
输出:
(int, string)