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

How to construct custom type in a template class definition

本文关键字:自定义 类型 定义      更新时间:2023-10-16

是否可以使用模板来构造类型定义中的类型? 例如,我想要这样的东西:

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

如果不能为此目的使用模板,是否可以进行这样的声明?

问候,达维德

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

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

你能更详细地描述你想做什么吗?

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

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