boost-signals2

    3熱度

    1回答

    class Whatever { public: virtual ~Whatever(); protected: Whatever(); virtual void SomeMethod(); void OnEventOccurred(int x); std::vector<boost::signals2::scoped_connectio

    5熱度

    1回答

    我一直在玩boost::signals2最近學習的目的,我想知道我是否可以連接信號到非靜態插槽位於一個類(如我可以在QT)。考慮以下幾點: class Worker { typedef boost::signals2::signal<void (const std::string &)> SendMessage; public: typedef SendMessage::sl

    3熱度

    2回答

    我遇到以下問題:我們的主應用程序使用Qt工具包來顯示窗口和用戶交互。然而,我們應用程序的很大一部分對GUI部分一無所知。我現在創建了以下設計: 有一個單例類可請求呈現給定對象(OpenSceneGraph的節點;但這是無關的問題) 呈現請求使單以發射信號 有一個在主窗口類插槽(其中使用Qt)來處理渲染對象 目前,該槽只創建一個新的文本編輯窗口小部件,並將其放置在主窗口的QMdiArea 但是,當我

    2熱度

    1回答

    我在對象1上有一個Boost.Signals2信號,並在對象2上連接到它。 如果對象2遭到破壞,信號將不會斷開連接,當信號發出時可能會導致不好的事情。 爲了解決這個問題,我在對象2上保留scoped_connection。現在的問題是如果對象1與信號一起破壞,然後對象2破壞。 會造成問題嗎?有沒有更好的方法來解決一般問題? (從對象1 - >對象2有連接,當它們被破壞時它們將斷開連接)。 演示問題

    1熱度

    1回答

    Boost的signals2庫定義了一個很好的方法來通過其擴展功能的其他參數(通過其參數庫)。當我的代碼中這些替代參數中的一個是相當普遍的時候,我想要做一個幫助來進一步簡化使用;例如,以指定備用互斥I型可以這樣做: namespace bs2 = boost::signals2; template<typename Signature> struct my_signal { typ

    3熱度

    1回答

    我試圖轉換一些使用不同系統的代碼來使用Boost.Signals2。舊代碼使用常規函數指針作爲函數;連接是通過調用具有函子的特定方法完成的,並且通過使用完全相同的函數調用另一個方法來完成斷開連接。出於兼容性原因,我仍然希望支持這一點,儘管我知道這不是Signals2下最有效的方法。 namespace bs2 = boost::signals2; class Foo { typede

    2熱度

    2回答

    我有一個應用程序由許多鏈接的對象組成,每個鏈接對象都有它們需要的參數才能起作用。我正在使用上下文模式,以便每個對象根據構建時給出的上下文對象參考設置自己的參數。這在下面給出的簡化代碼示例中運行良好。 我試圖添加的下一個功能是觀察者模式,以便當上下文對象中的參數發生更改時,會通知每個訂閱服務器對象並相應地更新其參數。但是,我無法解決爲了將信號連接到插槽而需要使用的語法。 理想情況下,我希望訂閱者對象

    5熱度

    1回答

    我想序列化一個boost :: signals2信號的多線程調用,以確保有關從一個對象的狀態變化的通知按照明確定義的順序到達插槽。 背景 我有在多線程程序的內部狀態的對象。內部狀態的某些部分是對程序的其他部分有趣,並且對象通過一個boost :: signals2信號,類似這樣暴露狀態的改變: class ObjectWithState { public: enum State {

    3熱度

    1回答

    我需要覆蓋boost::signals2::signal和boost::function之間的連接。 爲此,我創建了下面的模板功能: template<typename T> void bind(boost::signals2::signal<T> &signal, boost::function<T> function) { // override code ... } 我想利

    3熱度

    2回答

    我目前正在重構一箇中等規模的軟件項目。它包含一個由多個線程使用的中央內核類。目前,該類使用Glib::Dispatcher來處理多線程發出的信號。由於重構過程的一個目標是完全擺脫glibmm(因爲Qt將用作新框架),所以我試圖找出如何使用Boost「模擬」調度程序功能的方法。我已經看過Boost.Signals和Boost.Signals2,但這些庫中的任何一個似乎都不能提供調度程序的替代方案。