Loki对模板的模板类妙用的非常到位,其中一个是GenScatterHirerarchy一个是GenLinearHirerarchy,我们可以利用GenScatterHirerarchy的离散特性来生成接口,利用GenLinearHirerarchy来生成继承的线性关系。如下GenScatterHirerarchy的示例。
template<class T>
class MyUnitClass
{
public:
virtual T* getObj() const = 0;
};
typedef ::Loki::GenScatterHierarchy<
LOKI_TYPELIST_3(int, double, char),
MyUnitClass
>
IDCGenerator;
class DUnit : public MyUnitClass<int>
{
public:
int* getObj() const
{
return 0;
};
};