Templates 在运行时在D中声明类成员
我希望以下结构作为类成员,但我不知道Templates 在运行时在D中声明类成员,templates,class,struct,d,Templates,Class,Struct,D,我希望以下结构作为类成员,但我不知道t的类型,因此我需要在运行时“声明”该结构 struct Chunk (T) { string id; T[][] data; } class FileBla { this() { Chunk !int ck; // need to be turned in a class member } } 应该缺少一些简单的内容。您也可以为类设置模板: import std.stdio; struct Chunk
t
的类型,因此我需要在运行时“声明”该结构
struct Chunk (T) {
string id;
T[][] data;
}
class FileBla {
this() {
Chunk !int ck; // need to be turned in a class member
}
}
应该缺少一些简单的内容。您也可以为类设置模板:
import std.stdio;
struct Chunk (T) {
string id;
T[][] data;
}
class FileBla(T) {
private:
Chunk!T ck;
}
void main() {
auto f = new FileBla!int;
writeln(typeid(f.ck));
}
我假设您已经习惯了用动态语言编程,现在正在尝试学习静态语言 至少有三种合理的方法可以做到这一点: 模板文件bla也是:
class FileBla(T) {
Chunk!T ck;
// Other stuff.
}
在多态类中包装块
在堆上分配块并存储指向它的void*
指针。这是旧的C风格的做事方式,需要手动将指针转换为正确的类型,而且内存不安全。尽管如此,它偶尔还是有用的