是否可以使用模板构造类型定义中的类型?例如。我想有这样的事情:如何在模板类定义中构造自定义类型
class MyType
{
template<typename T>
someNamespace::T Convert(someOtherNamespace::T value);
};
如果模板不能从事用于此目的,这样的声明甚至可能吗?
问候,Dawid
是否可以使用模板构造类型定义中的类型?例如。我想有这样的事情:如何在模板类定义中构造自定义类型
class MyType
{
template<typename T>
someNamespace::T Convert(someOtherNamespace::T value);
};
如果模板不能从事用于此目的,这样的声明甚至可能吗?
问候,Dawid
不,它不是。模板参数名称是实际类型,而不是标识符(如果您想在名称空间中查找,您将需要这些标识符)。
此外,我不明白这是如何特别有用。它要求两个名称空间包含具有相同名称的类型,并且可以以完全通用的方式进行转换 - 您多久会看到一次?
你能更详细地描述你想做什么吗?
我必须在托管(C++/cli)和本机类型之间执行序列化。为此,我有一个模板序列化程序类:\t'template
@dawid:你可以使用MACRO ...? – Jarod42
@ Jarod42:模板之前没有解析宏吗?如果是这样,我必须使用两种类型(从宏获得)实例化模板函数。我想用一种类型(标识符)模板化一个函数,并在函数中执行精确的类型构造(或者如果一个类是模板化的,则为类)。 – dawid
不能确定你想要什么,但也许以下(使用宏)可能会有帮助:
// Assuming value is of type someOtherNamespace::identifier
#define CONVERT(identifier, value) static_cast<someNamespace::identifier>(value)
*为什么你要这样做*? –