gpt4 book ai didi

c++ - 在 C++ 中使用由 iOS native 库公开的 C 位掩码(匿名枚举)

转载 作者:太空狗 更新时间:2023-10-29 15:08:26 25 4
gpt4 key购买 nike

<分区>

Cocoa 使用类型定义的匿名枚举位域。

无论好坏,我都在使用 Objective-C++。在 .mm 文件中,我需要将 2 位(按位包含或)分配给这些枚举位域类型之一的类型的属性。 libc++ 编译器不会拥有它,因为它不会将 int 类型的右值赋予该类型定义的匿名枚举位域的属性。

我了解 C 和 C++ 之间枚举的大小存在差异。那么这种情况的解决方法是什么?

我执行任务的代码类似于:

    uiSwipeRightDownRecogniser.direction = Right | Down;

位域的定义类似于:

    typedef enum 
{
Right = 1 << 0,
Left = 1 << 1,
Up = 1 << 2,
Down = 1 << 3
} UISwipeDirection;

错误是:

无法使用“int”类型的右值初始化“UISwipeDirection”类型的参数

这种分配在 .m 文件中有效,但在 .mm 中无效。

编译器是Apple的LLVM 3.0(使用libc++)。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com