boost-bind

    2熱度

    2回答

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

    62熱度

    4回答

    之間的區別兩者之間有什麼區別嗎?或者我可以安全地用我的代碼中的std::bind來代替boost::bind的每一次出現,從而消除對Boost的依賴?

    3熱度

    1回答

    是否可以進行以下轉換?我已經嘗試了boost :: lambda,只是一個普通的綁定,但我很努力地進行轉換,而不需要一個特殊的輔助類來處理foo和調用bar。 struct Foo {}; // untouchable struct Bar {}; // untouchable // my code Bar ConvertFooToBar(const Foo& foo) { ... }

    0熱度

    1回答

    我想有一個類成員函數的行爲就像一個函數指針。我需要這種行爲來將我自己的類集成到一些現有的代碼中。 看來,這可能是使用Boost :: function和Boost :: bind,但我似乎無法得到它的工作。以下代碼是我用來測試我的實現的最小示例。 main()程序的最後一行是我希望能夠做到的。 任何幫助,非常感謝。我正在使用g ++和Boost 1.46。 // Includes #includ

    1熱度

    1回答

    因爲libeigen做了特殊的工作來調整所有類型的內存對齊方式,所以它有一個特殊的規則,說在傳遞特徵類型作爲參數時,它們應該總是通過引用。 但我相信boost :: bind隱式地傳遞值。 我的直覺是,使用boost :: bind與特徵類型(並且不使用boost:ref)會違反Eigen的按引用傳遞規則,從而導致問題。 任何人都可以證實這一點嗎?

    2熱度

    1回答

    我有一個情況我有一系列的成員函數產生一個目標對象的簡單信息: double MyDoc::GetX(thing) double MyDoc::GetY(thing) etc. 我在同一個班做了一些「非常格式化」的成員函數: string MyDoc::PrintOne(thing, std::function<double (THING*)>) 你會發現,漂亮的打印機功能需要一個數據的

    0熱度

    2回答

    我想知道是否有人可以幫我解決這個問題。我一直在閱讀,這是在VS2010中使用std :: make_pair的一些問題,因爲它被重載,並且我找到了一些可行的解決方法,但是,我無法找到一種方法使它在這裏工作我。 下面是代碼的一部分,所以你可以看看: namespace tree { #define container std::vector typedef container<I

    2熱度

    3回答

    我有一個Visual Studio 2008 C++ 03項目,我想使用boost::function對象來設置指針的值。事情是這樣的: boost::function< void(int*) > SetValue; boost::function< int*() > GetValue; int* my_value_; SetValue = boost::bind(my_value_, _

    3熱度

    2回答

    我是新來提振精神,我有以下問題: #include <string> #include <vector> #include <boost/spirit/include/qi.hpp> #include <boost/spirit/include/phoenix_operator.hpp> #include <boost/spirit/include/phoenix_function.hp

    1熱度

    1回答

    我有一個指向對象的指針的容器。指針是一個基類,並且該層次結構實現了一個虛函數count()。我想在容器中計算總計count()。 我目前做這與for_each和lambda函數: size_t sum = 0; std::for_each(ptrs_.begin(), ptrs_.end(), [&sum](ptr const *p) { expr += p->count(); })