2013-11-24 59 views

回答

4

我不認爲這是可能的。這意味着它不提供在結構D.

這種功能是通過druntime上課雖然支持多態建設:

class A {} 

auto ti = typeid(A); 

void main() 
{ 
    auto instance = cast(A) ti.create(); 
    assert(instance); 
} 

人能夠實現比類其他類型類似的工廠基礎設施,但是,是不是開箱即用(並且有點不鼓勵)。

+0

我想我會使用類比!謝謝! –

+0

一個可能的選擇是創建一個長度爲== ti.init.length的內存塊,然後將ti.init複製到它,然後將其轉換爲結構......儘管如此,如果您知道要轉換的結構類型到,你可以做'新的Struct()'而不是...所以你可以用typeinfo做一個,但不能真正使用它。 –

+0

情況實際上類似於'create'返回'Object'類,而不是特定類型並且需要強制轉換。雖然它可以改爲通用接口而不是使用虛擬調度來緩解。這就是爲什麼它對於結構不是很有用的原因。 –

相關問題