![](/img/trans.png)
[英]Can't add a non-copyable connection to boost::signals2::signal
我正在實現一個包裝器,它允許我將我的處理程序(在本例中為 Widget 對象)完美地轉發到一個可調用對象中,然后我可以將其用作信號處理程序。 我設法通過將我的處理程序作為元組轉發來做到這一點,因此當左值引用作為參數傳遞以添加 function 時,元組存儲對我的 object 的引用。 在這種情況下 ...
[英]Can't add a non-copyable connection to boost::signals2::signal
我正在實現一個包裝器,它允許我將我的處理程序(在本例中為 Widget 對象)完美地轉發到一個可調用對象中,然后我可以將其用作信號處理程序。 我設法通過將我的處理程序作為元組轉發來做到這一點,因此當左值引用作為參數傳遞以添加 function 時,元組存儲對我的 object 的引用。 在這種情況下 ...
[英]Doxygen documentation of boost::signals2 function signature
就像標題中一樣:有誰知道如何正確編寫 boost::signals2 簽名的 Doxygen 文檔/** * @brief aSignal * void : aVoidReturn * int : anInteger * doulbe : aDouble */ boost::si ...
[英]Is it possible to create boost::signal2 with asynchronous combiner?
對於一個項目,我嘗試創建異步升壓信號,它似乎工作,但 valgrind 告訴我相反。 在下面的示例中,您可以看到一個基本的實現和用法。 對於這個例子,我需要一個異步信號,因為信號是在 SET function 中觸發的,它鎖定了互斥鎖,並且插槽嘗試調用 GET,它也鎖定了互斥鎖。 是的,我可以在信 ...
[英]Boost signals2 and std::shared_ptr?
是否可以(在編譯時)配置boost::signals2以使用std::shared_ptr而不是boost::shared_ptr ,例如在boost::signals2::deconstruct之類的調用中? 我正在使用提升 1.68 ...
[英]call boost signals2 slot on a separate thread
如何在不阻塞發出信號的線程的情況下在單獨的線程上調用 boost 信號 2 插槽? 我想通過 QueuedConnection 參數獲得 Qt5 QObject::connect的功能; 有關 Qt5 的詳細信息,請參閱Threads 和QObjects 。 也就是說,我需要能夠發出 boost 信 ...
[英]Boost Signals2 pass Slot to member Function for Disconnecting
我有以下 class 使用簡單的boost::Signals2::Signal : 我使用 class 如下: 但是 Function demo沒有斷開。 output 始終為: 如何正確斷開 Function 與信號的連接? ...
[英]Is it safe to use a boost::signals2::scoped_connection object as member of a class for automatic connection lifetime?
我想知道以下代碼是否安全,因為信號可能由不同的線程觸發: 編輯:為some_action添加了一個虛構的資源、析構函數和一個實現,以使其更加清晰。 有了這個問題,我想澄清一下我的假設是否正確,即信號槽可能在Foo的析構函數之后但在scoped_connection的析構函數之前調用。 為簡潔起見, ...
[英]boost signal and slot not working in different thread (using boost::asio::io_service)
我編寫了一個小測試程序來了解 boost 提供的signal and slot機制以及它們在不同線程中發布時的行為。 我想在不同的線程中調用插槽,但是我的程序的 output 顯示插槽沒有在發出信號的不同線程中被調用。 程序的output為: 我懷疑io_service的post()方法工作不正常 ...
[英]Replacing boost-signals2 with C++11 signals
我是一名研究程序員,為無人駕駛車輛開發自主系統,我正在修改另一個項目的一些開源代碼,以制作用於車輛控制的驅動程序。 這個想法是有一個模塊,它通常處理加載特定於車輛的驅動程序作為庫的控制,現有實現使用 boost::signals2 將模塊函數調用綁定到驅動程序。 由於這是它目前唯一使用 boost ...
[英]Cast return value to templated type
我有以下模板類。 由於R可以為空,所以我在行上收到無效的間接編譯錯誤 由於它是模板類,因此似乎無法通過運行時檢查來解決。 一個人不能返回“類型”無效。 我該如何解決? ...
[英]C++ Boost signals and slots connection
我正在嘗試使用boosts信號和插槽將gui連接到我的邏輯線程,邏輯類具有一種將函數連接到信號的簡潔方法。 這是locig類的簡化副本: 這是gui類的簡化副本 在我的代碼中的某個時候,gui類已經被實例化,但是邏輯類沒有被實例化。 因此,我想實例化LogicClass並將G ...
[英]Relaying a signal with boost.signals2
如下面的代碼所示(作為問題的示例實現),我試圖將信號從內部類發送到中層,然后將其中繼到外部類。 而不是預期的結果: 運行該程序時,實際發生的是: 其次是崩潰。 我已經注意到處理程序中“ this”的地址與常規方法中的地址不同,但是我不知道如何解決。 我為此找到 ...
[英]What do parentheses mean within angle brackets for a Boost signal?
在我的基本c ++書中,沒有類似下面的類聲明。 我的奇怪代碼是...... 圓括號中的東西( const std:::string ...)不是typename而是實例。 怎么可能呢? 上面的代碼編譯得很好。 ps模板類( signal )代碼是 ...
[英]C++ shared_ptr std::bind and std::function
我有以下幾點: 類B監聽類C的boost::signal2 ,當被觸發時將執行類A給出的回調,並執行類A的方法 A , B和C , D均為std::shared_ptr 。 問題在於,當類D釋放指向類B的指針時,由於信號處理程序的原因,不會刪除B 即使我在boost::con ...
[英]In which thread are the slots executed?
假設我有四個線程,具有以下對象: 線程1:管理boost::signals2對象。 說它s 。 線程2:管理X對象和對s的引用。 調用X對象o2 。 成員函數X::do()連接到s ,通過o2執行。 線程3:管理Y對象和對s的引用。 調用Y對象o3 。 成員函數Y:: ...
[英]Boost Signals2: How do I register events such as mouse clicks and key presses?
目前,我正在開發一個游戲,並且打算使用signal2庫在C ++中進行事件處理。 但是,我不知道它們如何組合在一起,因為我想進行諸如“按按鍵”和“單擊鼠標”之類的事件,以及諸如套接字上的傳入連接之類的事件。 如何注冊這些事件? 似乎該庫用於這種類型的事物,但是在線似乎沒有任何跡象表明如 ...
[英]boost::signal2 bind to pure or member function using enable_if
我目前正在嘗試實現一個類的成員函數,該成員函數允許設置本身是成員函數(可能是不同類的成員)或不屬於類的純函數的回調。 有了這樣的課程, 適用於非成員方法。 但是,我在某種程度上無法實現使用戶連接到not的成員的某種努力。 這是我嘗試的: 由其他類的成員函數調用,如下所示 ...
[英]How can I prevent signals2::scoped_connection from aborting in disconnect()?
我正在使用boost :: signals2並遇到連接管理問題。 我將scoped_connections存儲在稍后被修剪的列表中。 但是,我發現如果擁有關聯信號的對象已被破壞,則scoped_connection :: disconnect()將中止,因為它的某些字段現在無效。 C ...
[英]How do I get boost.msm to properly change state when using a signal handler to trigger events?
使用信號處理程序觸發事件時,我的( boost.msm )狀態機似乎“回滾”。 但是,當我使用直接調用來觸發事件時,狀態機的行為正確。 我查看了boost文檔並在網上搜索,但是似乎所有示例都使用直接調用來觸發事件。 我也搜索了SO,但找不到解決此主題的任何東西。 我正在學習boo ...
[英]Wrap c++11 std::function in another std::function?
我想將一個std :: bind()或lambda的結果包裝在一個幫助函數中,該函數跟蹤函數調用的執行時間。 我想要一個可以使用任意數量的參數(和類方法)的通用解決方案,並且兼容c ++ 11。 我的目的是獲取包裝函數並將其傳遞給boost :: signals2 :: signal,因 ...