如果两个不同的库定义相同的枚举并且我需要在同一个项目中使用这两个库会怎样?
枚举月份 {January=0, February, ..., December}
谢谢。
附言它是 C。没有命名空间。我不能让他们分开。需要一些解决方法。
什么是枚举链接?内部还是外部? C++ 项目中使用的 C 库。 C++ 标签适用。
最佳答案
C libs used in C++ project. C++ tag applies
由于它们在 C++ 项目中使用,因此在将它们包含在 C++ 代码中时可以使用命名空间,如下所示:
// C files
//libone.h
enum Month {January=0, February, ..., December}
//libtwo.h
enum Month {January=0, February, ..., December}
///////////////////////////////////////////////////////////////////
//C++ files
//lib.hpp
namespace LibOne
{
#include "libone.h"
}
namespace LibTwo
{
#include "libtwo.h"
}
//Usage in C++
LibOne::Month m1 = LibOne::January;
LibTwo::Month m2 = LibTwo::January;
关于c++ - 冲突的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6285872/