我有一个资产管理器为一个简单的D游戏,我想做一个简单的得到函数,以便得到!纹理(...)或get!Sound(...)将是一个选项。我是相当新的模板,当我试图这样没有工作这么好:如何在D中重新创建类似std.conv.to的东西? (...)
T get(T) (string p_name)
{
if (T is Texture)
return _textures[p_name];
else if (T is Sound)
return _sounds[p_name];
else if (...)
...
else
return null;
}
首先,这是因为第一个return语句后没有编译,它似乎只接受退货纹理。其次,我不是那些陈述清单的忠实粉丝 - 是否有更好的方式去做这件事?我知道std.conv.to管理它。
谢谢。你会想用静若
正确的术语是“模板约束”,而不是“模板条款”,除非意味着什么是“模板条款”不是模板上的'if'等,在哪种情况下我不知道你指的是什么。 –
不是它的限制;我想不出名字 –
当我使用模板约束方法时,出现错误“无法在编译时解释纹理”。什么会造成这种情况? – patrickjm