24,855
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <boost/signals2/signal.hpp>
#include <Windows.h>
struct Hello
{
void operator()() const
{
std::cout << "Hello";
}
};
struct World
{
void operator()() const
{
std::cout << ", World!" << std::endl;
}
};
//[ good_morning_def_code_snippet
struct GoodMorning
{
void operator()() const
{
std::cout << "... and good morning!" << std::endl;
}
};
//]
int main()
{
boost::signals2::signal<void ()> sig;
boost::signals2::connection c1 = sig.connect(1, World()); // connect with group 1
boost::signals2::connection c2 = sig.connect( 0,Hello()); // connect with group 0
sig.connect(GoodMorning());
sig();
sig.disconnect(&Hello::operator());//这里的slot_fun该怎么写?
//sig.disconnect(0); //这样是ok的,但是不能具体指定group里面的某个slot函数
//c2.disconnect();//这样也是ok的
sig();
return 0;
}
/*
* File: main.cpp
* Author: jim
*
* Created on 2010年8月9日, 下午5:31
*/
#include <iostream>
#include <boost/signals2/signal.hpp>
struct Hello
{
void operator()() const
{
std::cout << "Hello";
}
template<class T>
bool operator==(const T &val) const
{
return false;
}
bool operator==(const Hello &val) const
{
return true;
}
};
struct World
{
void operator()() const
{
std::cout << ", World!" << std::endl;
}
template<class T>
bool operator==(const T &val) const
{
return false;
}
bool operator==(const World &val) const
{
return true;
}
};
//[ good_morning_def_code_snippet
struct GoodMorning
{
void operator()() const
{
std::cout << "... and good morning!" << std::endl;
}
};
//]
int main()
{
boost::signals2::signal<void ()> sig;
Hello hello;
boost::signals2::connection c1 = sig.connect(1, World()); // connect with group 1
boost::signals2::connection c2 = sig.connect(0, hello); // connect with group 0
sig.connect(GoodMorning());
sig();
sig.disconnect(hello);//这里的slot_fun该怎么写?
//sig.disconnect(0); //这样是ok的,但是不能具体指定group里面的某个slot函数
//c2.disconnect();//这样也是ok的
sig();
return 0;
}
sig.disconnect(&Hello);
sig.disconnect(Hello);