2
我在我的命名空间中有一组类,并且想要在define.hpp文件中对转发声明进行分组。关于强类型的枚举向前声明
我已经在其他项目中实现这一点,这里有一个例子:
namespace Makefile
{
class Builder;
class Config;
class Options;
class Target;
class Tool;
}
我的问题是 - 例如 - 在配置类包括下列强类型枚举:
namespace Makefile
{
class Config
{
public:
enum class OperatingSystem : unsigned int
{
MacOSX = 0,
Linux = 1,
Windows = 2
};
};
}
所以我想在我的前向声明文件中添加这个枚举类,并添加以下行:
enum class Config::OperatingSystem : unsigned int;
这里来我的问题,我得到编译时出现以下错误:
src/Makefile/define.hpp:6:13: error: opaque-enum-specifier must use a simple identifier
这是否意味着它是不可能的前瞻性声明嵌套类型? 有没有解决这个问题的办法? 这是由于我的编译器?
我的配置:GCC 4.6.0在Mac OS十.7
编译标志:--std=c++0x -g3 -gdwarf-2 -W -Wall -iquote gen -iquote src
你永远不能在班级以外的地方宣布班级成员。这与具体的枚举无关。 –
你为什么要把一个'enum class'放入一个类?当我们没有强类型的枚举时,“内部类”技巧就是我们所使用的。像这样访问嵌套枚举的成员需要非常繁琐的名称:'Makefile :: Config :: OperatingSystem :: enum_name“,这似乎是不必要的冗长。 –