gpt4 book ai didi

c++ - 将遗留的 c 枚举包装到 c++11 枚举类

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:56:11 27 4
gpt4 key购买 nike

我有一个旧的 C 库,我必须将它包装在 C++ 环境中。我使用 C++11 enum class 因为它们非常有用,我想将原始 enum 转换为新的 enum class 而不是简单地创建新的 enum class 并重写它。我想做一些像旧 C 中的 typedef 的事情:

enum num_oldc
{
one,
two,
three
};

typedef enum num_oldc num_oldc_t;

但是 one_t 必须可以通过它的范围 num_t::two 访问,就像我可以访问一个新的 C++11 enum 类.

最佳答案

您将无法使用 typedef 执行此操作。但是,您可以按如下方式进行。

  • 使用与 C 风格 enum 条目相对应的条目创建更好的 enum 类
  • 创建两个函数,用于在您的 enum 类 和 C 风格的 enum 之间进行映射。
  • 在您的包装器 API 中,仅使用枚举类
  • 在您的包装器的实现中,每当您需要与您正在包装的库交互时,与 C 风格的 enum 相互转换。

关于c++ - 将遗留的 c 枚举包装到 c++11 枚举类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18494017/

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