As noted on Errc.h:
* std::errc is just marked with is_error_condition_enum. This means that
common patters like AnErrorCode == errc::no_such_file_or_directory take
// 4 virtual calls instead of two comparisons.
And on some libstdc++ those virtual functions conclude that
int main() {
std::error_code foo = std::make_error_code(std::errc::no_such_file_or_directory); return foo == std::errc::no_such_file_or_directory;
}
should exit with 0.