在C /CX中使用本机枚举
Using native enums in C++/CX
我在C /CX类中具有公共功能:
using Windows::Foundation
Collections::IVectorView<IType^>^ F(Point p);
分别在一个纯粹的本地类中有一个枚举:
namespace N
{
enum E
{
kA, kB, kC
};
}
我想创建一个f的超载,也接受e:
Collections::IVectorView<IType^>^ F(Point p, N::E e);
当然,在公共功能的签名中包含本地类型是错误的。有什么方法可以将此枚举暴露给我的托管呼叫者?
正如其他人指出的那样,解决方案是将枚举e声明为'公共枚举类E'。在大多数情况下,这可以对待(并且可以像)本机C 枚举一样效率,但是在ABI级别上也可见和发布,并且可以由其他WinRT呼叫者呼唤和使用。这将适当地投影到其他WinRT语言中(例如,它将被视为C#中的枚举)。
相关文章:
- 从C++本机插件更新Vector3数组
- 不带大括号的枚举形式
- 枚举环境变量的惯用C++14/C++17方法
- GCC本机矩阵运算库
- 类似枚举的计算常量
- 如何正确实现和访问运算符的各种自定义枚举器
- VC++本机单元测试,找不到调试符号
- 错误:从"int"到枚举c++的转换无效
- 在这种情况下,java对象是否可以调用本机函数
- C++中构造函数中的枚举
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 访问在 C++ 结构中声明的枚举变量
- 枚举类'classname'的多重定义
- 强枚举类型定义:Clang Bug 还是 C++11 标准不确定性?
- typedef 枚举和枚举类有什么区别?
- 为什么我的开关/机箱在使用枚举时默认?
- 标准::可选枚举的比较运算符
- 如何在V8中为C 本机对象实现属性枚举器
- 在C /CX中使用本机枚举