我怎么知道继承boost :: asio :: basic_io_object的类中的成员?

时间:2015-02-20 13:05:36

标签: c++ boost

我有这堂课:

template < typename Service >
class BasicIOObject : public boost::asio::basic_io_object<Service>
{
public:
    explicit BasicIOObject(
        boost::asio::io_service &io_serviceIn, CString& fileNameIn)
    :   boost::asio::basic_io_object<Service>(io_serviceIn)
    {
        this->service.init(this->implementation, fileNameIn);
    }

    void wait()
    {
        this->service.wait(this->implementation);
    }

    template <typename Handler>
    void async_wait(Handler handler)
    {
        this->service.async_wait(this->implementation, handler);
    }

    void wait_handler(const boost::system::error_code &ec)
    {
        this->service.async_wait(
            this->implementation, boost::bind(&BasicIOObject::wait_handler, this, boost::asio::placeholders::error));
    }
};

我无法看到this指的是什么?我没有找到任何关于boost::asio::basic_io_object的文档,所以任何帮助都将不胜感激。

由于


好的,我知道this它引用了当前的实例,但我怎么知道它有一个service成员?

2 个答案:

答案 0 :(得分:2)

查找有关Boost.Asio类型和函数的文档的最佳位置之一是官方文档的reference部分。此页面包含指向类型的链接,例如basic_io_object。对于basic_io_object,记录了它具有service受保护的数据成员:

  • 已弃用,并建议使用get_service()受保护的成员函数
  • 仅适用于不支持可移动性的服务
  • 的类型为service_type,这是提供给basic_io_object<>的模板模板参数,必须是IoObjectService类型要求的模型

答案 1 :(得分:1)

boost::asio::basic_io_objectservice个成员和implementation成员。其中service的类型为service_type且实际上是basic_io_object的模板参数,而implementation_type的类型为service_type::implementation_type