我有个问题:
我想显式实例化类似Datatype
的类:
using Layout = some::namespaces::Meat_Layout<Some,Parameters>;
using Datatype = other::namespaces::Meta_Datatype<Layout>;
对于显式实例化,我需要使用详细的类型说明符。不允许使用typedef。因此我不能写:
template class Datatype;
但是我必须写:
template class some::namespaces::Meta_Datatype<other::namespaces::Meat_Layout<Some,Parameters>>;
如果那里还有任何typedef,我也必须替换它们,这可能会导致类似:
template class some::namespaces::Meta_Datatype<other::namespaces::Meta_Meat_Layout<Some,Meta_Parameters<int>,int,int>>;
如您所见,这变得非常快还不清楚。
有什么技巧可以避免所有typedef的解构?
最好在使用
extern template
时也可以使用该技巧。 最佳答案
您不必解构所有typedef。那些用作模板参数的参数可以保留不变:
using Layout = some::namespaces::Meat_Layout<Some,Parameters>;
using Datatype = other::namespaces::Meta_Datatype<Layout>;
template class other::namespaces::Meta_Datatype<Layout>;
关于c++ - 有一个技巧可以显式实例化深层模板类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58745481/