【发布时间】:2019-07-22 16:13:54
【问题描述】:
我正在为 C 库编写 C++ 包装器。在 C 库中,我有一个
typedef enum {bar1,bar2} Foo; /* this is defined in the C library */
我想“带入”一个 C++ 命名空间。我正在使用
namespace X{
using ::Foo;
}
实现这一目标。但是,为了限定枚举成员,我总是必须将它们称为
X::Foo::bar1
等等。有什么方法可以将 C 枚举“导入”到 C++ 命名空间中,但直接将枚举的值引用为
X::bar1
等等?或者换句话说,我可以将枚举的值直接导入命名空间吗?
编辑
我不认为这个问题是骗人的,请看我的回答,因为我意识到有一个解决方案。
【问题讨论】: