小编Flo*_*rck的帖子

Visual C++和gcc之间的宏##连接运算符的差异

我有一个这样的宏(不完全是,但功能相当):

#define STRUCTMEMBER(Member,Value) GlobalStructInstance. ## Member = Value
...
STRUCTMEMBER(Item,1);
Run Code Online (Sandbox Code Playgroud)

这在Visual C++中完美地工作,但是gcc 3.4.5(MingGW)会产生以下错误:

粘贴"." 并且"Item"不提供有效的预处理令牌

当我使用" - >"运算符时也会发生这种情况.我没有找到关于连接的提示,禁止使用这些运算符.

有没有人有想法?

gcc stringification visual-c++ c-preprocessor

5
推荐指数
2
解决办法
7348
查看次数

使用using指令在C#中缩短带有别名的枚举声明

我正在努力实现这样的目标:

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其定义类之外时缩短冗长的定义.

.net c# enums

2
推荐指数
1
解决办法
1779
查看次数

标签 统计

.net ×1

c# ×1

c-preprocessor ×1

enums ×1

gcc ×1

stringification ×1

visual-c++ ×1