我试试这个:timer tuto。 但是空白印刷品是另一类。当我在main中调用函数时:
t.async_wait(&class::print);
我有这个错误:
error : must use '.*' or '->*' to call pointer-to-member function in 'boost::asio::detail::lvref<void (class::*)(const boost::system::error_code&)>() (...)', e.g. '(... ->* boost::asio::detail::lvref<void (class::*)(const boost::system::error_code&)>())
我不知道如何解决这个问题:s
您必须绑定对象实例,例如:t.async_wait(boost :: bind(&amp; Class :: print,this,_1));或者,如果实例不是这个,请使用指向类的另一个(智能)指针。您可以使用引用,但这需要引用包装器来阻止绑定复制绑定参数:Class c; // ... t.async_wait(boost :: bind(&amp; Class :: print,boost :: ref(c),_ 1));
我已经尝试过,但我有一个错误:
error : 'void (class::*)(const boost::system::error_code&)' is not a class, struct, or union type typedef typename F::result_type type;
您需要处理print方法所需的参数。 像这样的东西: t-&gt; async_wait(boost :: bind(&amp; Class :: print,this, 提高:: ASIO ::占位符::错误)); 请查看本教程http://www.boost.org/doc/libs/1_59_0/doc/html/boost_asio/tutorial/tuttimer3.html
我尝试但是我有一个我不明白的错误
error : pointer to member type 'void (class::)(const boost::system::error_code&)' incompatible with object type 'windows'
BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1);
^
答案 0 :(得分:0)
您必须绑定对象实例,例如:
initPBJVision
或者如果实例不是t.async_wait(boost::bind(&Class::print, this, _1));
,请使用指向this
的另一个(智能)指针。你可以使用引用,但这需要一个引用包装器来阻止bind复制绑定参数:
Class
答案 1 :(得分:0)
您需要处理print方法所需的参数。
这样的事情:
t->async_wait(boost::bind(&Class::print, this,
boost::asio::placeholders::error));
查看本教程http://www.boost.org/doc/libs/1_59_0/doc/html/boost_asio/tutorial/tuttimer3.html