如何在模板类定义中构造自定义类型

时间:2014-01-13 13:02:37

标签: c++ templates visual-c++

是否可以使用模板来构造类型定义中的类型?例如。我想有这样的事情:

class MyType
{
    template<typename T>
    someNamespace::T Convert(someOtherNamespace::T value);
};

如果模板不能用于此目的,甚至可以做出这样的声明吗?

问候,Dawid

2 个答案:

答案 0 :(得分:1)

不,不是。模板参数命名实际类型,而不是标识符(如果要在命名空间中进行查找,则需要这些标识符。)

另外,我不知道这是如何特别有用的。它要求两个名称空间包含具有相同名称的类型,并且可以以完全通用的方式进行转换 - 您多久会看到一次?

你能详细描述一下你想做什么吗?

答案 1 :(得分:0)

不确定你想要什么,但也许跟随(使用宏)可能会有所帮助:

// Assuming value is of type someOtherNamespace::identifier 
#define CONVERT(identifier, value) static_cast<someNamespace::identifier>(value)