我有一个这样的宏(不完全是,但功能相当):
#define STRUCTMEMBER(Member,Value) GlobalStructInstance. ## Member = Value
...
STRUCTMEMBER(Item,1);
Run Code Online (Sandbox Code Playgroud)
这在Visual C++中完美地工作,但是gcc 3.4.5(MingGW)会产生以下错误:
粘贴"." 并且"Item"不提供有效的预处理令牌
当我使用" - >"运算符时也会发生这种情况.我没有找到关于连接的提示,禁止使用这些运算符.
有没有人有想法?
我正在努力实现这样的目标:
namespace A
{
using ClassB.EnumC = EC; // I would like to have an eqivalent like this
public class ClassB
{
public enum EnumC
{
Entry1,
Entry2,
Entry3
}
}
public class Foo
{
public void Bar()
{
ClassB.EnumC e = ClassB.EnumC.Entry1;
switch(e)
{
case EC.Entry1:
...
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
据我所知,可以为冗长的类型名创建别名,至少这适用于类和接口.但似乎不可能简单的类型像枚举.我想在使用enum其定义类之外时缩短冗长的定义.