boost-signals

    46热度

    5回答

    Boost.Signals允许various strategies使用时隙的返回值来形成信号的返回值。例如。添加它们,形成vector或返回最后一个。 的共同智慧(Qt文档所表达[编辑:以及一些这个问题的答案])是没有这样的事情是可能的Qt的信号。 然而,当我运行下面的类定义商务部: class Object : public QObject { Q_OBJECT public:

    0热度

    1回答

    我在我的代码中有一个类Yarl,其成员函数refresh我想绑定到两个boost::signal s。这些信号之一是这样定义的类EventHandler的成员: class EventHandler { public: boost::signal<void()> sigRefresh; }; 另一种是声明如下在另一个文件中的自由浮动的信号: namespace util

    3热度

    1回答

    因为我喜欢用C#和C++编程,所以我正在实现一个C#类事件系统作为我的计划C++ SFML的坚实基础-GUI。 这只是我的代码的摘录,我希望这个澄清我的概念: // Event.h // STL headers: #include <functional> #include <type_traits> #include <iostream> // boost headers: #inc

    2热度

    1回答

    我使用boost::signal具有不同的功能签名和不同的组合器。 在一个看起来像超出我希望得到某个信号声明返回的类中。 template<typename signal_type> class MyClass { signal_type mSignal; signal_type::result_type getResult() { return mSignal(); }

    0热度

    1回答

    时在文件A.hpp,我有 extern boost::signal<void (model::Bullet&, Point&, Point&, int)> signal_createBullet; 等文件A.cpp,我有 boost::signal<void (model::Bullet&, Point&, Point&, int)> signal_createBullet; 在文件B.h

    3热度

    1回答

    我有一个类,信号成员封装了boost :: function。 是否可以添加另一个信号作为处理程序与此API? class Foo { public: VOID AddHandler(boost::function<VOID()> handler) { m_signal.connect(handler); } private: boost:

    1热度

    1回答

    为什么这个简单的例子不能编译,我该如何解决这个问题? #include <iostream> #include <boost/signals2/signal.hpp> struct HelloWorld { HelloWorld() { i = 0; } void operator()() { std::cout << "I is: "

    2热度

    3回答

    我现在有一个类,可以通过回调通知其他一些对象: class Callback { virtual NodulesChanged() =0; virtual TurkiesTwisted() =0; }; class Notifier { std::vector<Callback*> m_Callbacks; void AddCallback(Cal

    2热度

    2回答

    我想封装一个signals2 :: signal对象并且暴露connect和operator()函数,但是它们的原型是怎么样的? 例子: #include <boost/signals2/signal.hpp> template<typename T> class A { public: typedef boost::signals2::signal<T> SIG_T;

    1热度

    1回答

    升压信号允许通过连接成员功能暂时阻止连接。但是,我有一个单一的信号与许多连接。连接由各自的听众存储和维护。现在广播公司决定暂时停止发送信号。似乎没有办法迭代信号的所有连接或临时禁用整个信号。这对我来说似乎很奇怪,因为这种机制肯定必须存在于内部,以便信号在发出信号时到达所有用户...... 我是否错过了什么?我怎样才能暂时禁用信号?