c++ - 'ACTION' 的 Swift 编译器错误重新定义

标签 c++ macos swift ios8

我在我的程序中遇到上述错误。我在 swift 中使用 C++ 代码( objective-c )。它与 IOS 8.4 框架文件(IOS 8.4->usr/include->search. h).如果我更改枚举的名称,错误就解决了,但我想知道错误的原因。欢迎任何有值(value)的想法。请看截图 error message

location of conflict flie conflict file

查看两个冲突文件中的枚举代码 主.h

    enum FilterConfigurationOrder
{
  NAME_WITH_CREATOR,  // name@mobile
  FROM_HHMM,
  TO_HHMM,
  FROM_YYYYMMDD,
  TO_YYYYMMDD,
  FROM_MOBILE,
  TO_MOBILE,
  FROM_LATITUDE,
  TO_LATITUDE,
  FROM_LONGITUDE,
  TO_LONGITUDE,
  AREANAME,
  IS_WITHIN_AREA,
  LOCATIONS_PER_MESSAGE,
  EVERY_X_MINUTES,
  ON_X_DAYS,
  ACTION1,
};

search.h 中的代码

typedef enum {
    FIND, ENTER
} ACTION;

最佳答案

在定义枚举本身的上下文中,枚举值与变量和 typedef 共享相同的命名空间。

enum Foo {
    Bar;
}

typedef int Bar;

int main() {
    Bar ... //do I refer to typedef or enum value?
}

C++11 引入了一个新的构造“枚举类”,其成员被放置在枚举名称下的单独 namespace 中:

enum class Foo {
    Bar;
}

typedef int Bar;

int main() {
    Bar ... //typedef
    Foo::Bar ... //enum value
}

关于c++ - 'ACTION' 的 Swift 编译器错误重新定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31554077/

相关文章:

swift - 如何使用可选键访问字典值?

c++ - Mac 应用程序的文件保存位置

arrays - 在数组 Swift 中使用函数

c++ - 缓存局部性能

macos - 在 Mac OS X 上组装项目时出现错误 "no such instruction"

multithreading - pthread_join 因 OSX 上的段错误而间歇性崩溃

macos - Mac 中找不到包 'libcrypto'

swift - 展开 UITextView,然后在某个点之后滚动

c++ - 从 'long int' 到 'long int*' 的无效转换 -fpermissive

c++ - vs2015 coco2d-x 3.8 读取字符串字符错误