我们有一些代码大致如下:
// Two enums that differ entirely.
enum A { a1, a2 };
enum B { b1, b2 };
// Functions to convert in some meaningful way between them
A convert(B);
B convert(A);
现在,我们的编译器完全按照我们的预期执行。 convert(a1)
将调用 B Convert(A)
,依此类推。然而,当我们使用 Lint 查看代码时,它会提示错误 31。我们怀疑这是因为枚举的底层整型类型是相同的,因此 Lint 可能会这样对待它们。
我的问题是:这是代码标准,还是这是编译器功能的意外使用?
最佳答案
此代码是标准且正确的。该错误位于 LINT 中
关于c++ - 使用两个枚举的重载解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1073963/