c++ - 如何使类对象成为C++中的检查条件?

标签 c++ boost

Boost 有这样的东西:

void OnAccept( const boost::system::error_code & ec)
{
        if( ec )
        {
         ...
        }
}

error_code 是一个类。重写什么运算符来创建类对象

最佳答案

你应该使用 safe bool idiom .这可以防止在您简单地提供到 bool 的转换时发生的大多数陷阱。

提供一些上下文:如果一个类型可以通过operator bool() const 隐式转换为bool,则该类型的值可以用于比较表达式,其中这种转换没有任何意义。 C++11 解决方案将是显式转换运算符。

关于c++ - 如何使类对象成为C++中的检查条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7768080/

相关文章:

c++ - 使用 WinSock2 开发,CreateThread() 函数出错

c++ - 将字母 2 × 2 分组

c++ - 什么是 __printf_fp() 以及何时调用它?

c# - 如何在二进制文件(.net 或非托管)中注入(inject)/更新版本和其他详细信息?

c++ - boost.asio boost::asio::ip::tcp::resolver::async_resolve 不起作用

c++ - 使用Boost PTree w/o标签解析XML

c++ - 使用 try_lock boost 锁定

c++ - 使用 Armadillo 类型的 lambda 函数崩溃的未知原因

c++ - 如何定位 "boost::noncopyable"错误?

c++ - 无法使用 boost asio 专门绑定(bind)到网络端口