/mnt/sdb/nfeng/code/es6_new/build_src/tmp-glibc/work/sa525m-oe-linux/telux-lib/1.0c-r0/telux/libs/src/rws/RwsManager/RwsTimeManagerImpl.cpp:251:66: error: comparison between 'enum time_service_base_enum_v01' and 'enum telux::tel::time_service_base_enum_v01' [-Werror=enum-compare] | 251 | if (indData->base == telux::tel::time_service_base_enum_v01::TIME_SERVICE_BASE_3GPP_V01) {
时间: 2023-12-24 11:03:07 浏览: 152
linux应用程序开发,读书笔记
这个编译错误是因为在比较两个不同命名空间下的枚举类型时出现了问题。
错误信息显示在第251行的代码中,你在比较`indData->base`和`telux::tel::time_service_base_enum_v01::TIME_SERVICE_BASE_3GPP_V01`,编译器认为这是不允许的,因为它们被认为是不同的枚举类型。
要解决这个问题,你需要确保在比较枚举类型时使用相同的命名空间。可以通过以下方式解决:
1. 在代码中添加`using`语句,以便在当前作用域中使用特定的命名空间:
```cpp
using telux::tel::time_service_base_enum_v01;
// 在这里可以直接比较枚举类型
if (indData->base == time_service_base_enum_v01::TIME_SERVICE_BASE_3GPP_V01) {
// 比较逻辑
}
```
2. 如果`indData->base`是另一个命名空间下的枚举类型,你需要使用完全限定的枚举类型名称来进行比较:
```cpp
if (indData->base == telux::tel::time_service_base_enum_v01::TIME_SERVICE_BASE_3GPP_V01) {
// 比较逻辑
}
```
请根据你的实际情况选择适当的解决方案。
阅读全文