将旧版c枚举包装到c++;11枚举类 我有一个旧的C库,我必须把它包在C++环境中。我使用C++11enum类,因为它们非常有用,我想将原始的enum转换成一个新的enum类,而不需要简单地创建新的enum类并重写它。我想做一些像旧C中那样的typedef: enum num_oldc { one, two, three }; typedef enum num_oldc num_oldc_t;
但是将旧版c枚举包装到c++;11枚举类 我有一个旧的C库,我必须把它包在C++环境中。我使用C++11enum类,因为它们非常有用,我想将原始的enum转换成一个新的enum类,而不需要简单地创建新的enum类并重写它。我想做一些像旧C中那样的typedef: enum num_oldc { one, two, three }; typedef enum num_oldc num_oldc_t;,c++,c++11,enums,enum-class,C++,C++11,Enums,Enum Class,但是one\u t必须通过其作用域num\u t::two进行访问,就像我可以访问一个新的C++11enum类一样您将无法使用typedef执行此操作。但是,您可以按如下方式执行 创建更好的enum类,其中的条目与C-styleenum的条目相对应 创建两个函数,用于在enum类和C样式enum之间进行映射 在包装器API中,仅使用enum类 在包装器的实现中,只要需要与正在包装的库进行接口,就可以在C-styleenum之间进行转换
one\u t
必须通过其作用域num\u t::two
进行访问,就像我可以访问一个新的C++11enum类一样
您将无法使用typedef
执行此操作。但是,您可以按如下方式执行
- 创建更好的
,其中的条目与C-styleenum类
enum的条目相对应
- 创建两个函数,用于在
和C样式enum类
之间进行映射enum
- 在包装器API中,仅使用
enum类
- 在包装器的实现中,只要需要与正在包装的库进行接口,就可以在C-style
之间进行转换enum