【问题标题】:Errors trying to use boost::asio::deadline_timer in class尝试在类中使用 boost::asio::deadline_timer 时出错
【发布时间】:2020-04-29 00:46:08
【问题描述】:

Boost v1.54

我最初在一个运行良好的 .cpp 文件中为此编写了我的测试,但是当我尝试将它与我的类合并到我的源代码中时,我遇到了以下持续错误:

error: no matching function for call to ‘boost::posix_time::seconds::seconds()’
 Database::Database()

error: no matching function for call to ‘boost::asio::basic_deadline_timer<boost::posix_time::ptime>::basic_deadline_timer()’
 Database::Database()

error: no match for call to ‘(boost::posix_time::seconds) (int)’
     interval(1);  // 1 second

我做了一些阅读,发现我必须在构造函数中初始化这些,并尝试这样做,但这并没有解决我的问题。

a.cpp - 数据库构造器

Database::Database()
{
    interval(1);
    timer(io_service,interval);    
}

啊.h

class Database
{
public:
    boost::posix_time::seconds interval;
    boost::asio::io_service io_service;
    boost::asio::deadline_timer timer;    
};

编辑 我现在已经通过将构造函数初始化为列表来解决我的问题:

Database::Database()
    : interval(1), timer(io_service, interval) {};

【问题讨论】:

    标签: c++ boost boost-asio asio deadline-timer


    【解决方案1】:

    我现在已经通过将构造函数初始化为列表来解决我的问题:

    Database::Database()
        : interval(1), timer(io_service, interval) {};
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-19
      • 1970-01-01
      相关资源
      最近更新 更多