我们有一些代码大致如下所示:
// 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 可能会这样对待它们。
我的问题是:代码是标准的,还是意外使用了编译器功能?