我正在使用 C++,以下是我的模板类:
namespace My{
template<class config>
class BasicValue
{
public:
enum Type
{
NULL_TYPE = 0,
OBJECT_TYPE,
ARRAY_TYPE,
STRING_TYPE,
BOOL_TYPE,
INT_TYPE,
REAL_TYPE,
}; // Type
};// BasicValue
}// My
现在,我正在从另一个 .cpp 文件访问这个“类型”枚举。我收到所有枚举类型的以下编译错误:
error: ‘STRING_TYPE’ was not declared in this scope
如何在“我的”命名空间之外使用此枚举?
下面是代码使用,我在 switch case 中使用枚举值:
void printValue(const Value& val, int space)
{
int sp = space;
switch(val.type())
{
case STRING_TYPE:
break;
case BOOL_TYPE:
break;
case INT_TYPE:
break;
case REAL_TYPE:
break;
default:
exit(-1);
}
}
最佳答案
有点像
My::BasicValue<int>::Type t; // get an instance of the type
....
t = My::BasicValue<int>::STRING_TYPE; // get a value
但这假设您修复了代码中的所有语法错误,如 in this example ..
关于c++ - 如何访问另一个命名空间中作为模板类成员存在的枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24795992/