将 std::error_code 与整数进行比较

Compare std::error_code with integers

本文关键字:整数 比较 code std error      更新时间:2023-10-16

我的设置:带有Xcode/clang的macOS

从 std::error_code 的例子来看,它似乎与枚举兼容,例如,您可以为其分配一个枚举, 但是当将其与这样的整数进行比较时:

if (my_error_code == 0)

我得到了

Invalid operands to binary expression ('const std::error_code' and 'int')

我应该如何针对已知整数(如errnos(测试error_code?

std::error_code

不能直接与int进行比较;您可能希望std::error_code::value获取error_code的值。(您可能还需要category的帮助。

返回与平台相关的错误值。

我应该如何针对已知整数(如 errnos(测试error_code?

应与对应于errno整数的std::errc枚举成员进行比较。

如果出于某种原因你不能/不想这样做,那么与从适当的类别和value构建的新error_code进行比较。