尝试在 class 中使用 boost::asio::deadline_timer 时出错
Errors trying to use boost::asio::deadline_timer in class
Boost v1.54
我最初在单个 .cpp 文件中为此编写了我的测试,该文件运行良好,但是当我试图将它与我的 class 合并到我的源代码中时,我收到以下持续错误:
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);
}
a.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) {};
我现在通过将构造函数初始化为列表解决了我的问题:
Database::Database()
: interval(1), timer(io_service, interval) {};
Boost v1.54
我最初在单个 .cpp 文件中为此编写了我的测试,该文件运行良好,但是当我试图将它与我的 class 合并到我的源代码中时,我收到以下持续错误:
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);
}
a.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) {};
我现在通过将构造函数初始化为列表解决了我的问题:
Database::Database()
: interval(1), timer(io_service, interval) {};