测试Boost库信号槽传参,在connect时必须使用占位符,确认传递参数个数
BOOST_STATIC_CONSTEXPR boost::arg<1> _1;
BOOST_STATIC_CONSTEXPR boost::arg<2> _2;
BOOST_STATIC_CONSTEXPR boost::arg<3> _3;
BOOST_STATIC_CONSTEXPR boost::arg<4> _4;
BOOST_STATIC_CONSTEXPR boost::arg<5> _5;
BOOST_STATIC_CONSTEXPR boost::arg<6> _6;
BOOST_STATIC_CONSTEXPR boost::arg<7> _7;
BOOST_STATIC_CONSTEXPR boost::arg<8> _8;
BOOST_STATIC_CONSTEXPR boost::arg<9> _9;
class Test {
public:
void test(std::string data)
{
while (true)
{
static int i;
printf("%d\n", i++);
printf(data.c_str());
sleep(1);
}
}
void test2()
{
printf("test2\n");
}
};
int main()
{
boost::signals2::signal<void(std::string)> sig;
Test aaa;
//std::thread t(&Test::test, aaa, "aaa");
sig.connect(boost::bind(&Test::test, &aaa, _1));
sig(std::string("test arg\n"));
getchar();
}