boost-bind

    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(); })

    0熱度

    2回答

    的實際簽名我具有其中包含的對象具有deadline_timer和外對象具有處理功能,用作兩層物體結構: class Internal { asio::deadline_timer t; public: void QueueTick(void (*handler)(boost::system::error_code const&)) { t.expire

    0熱度

    1回答

    我通過這個升壓教程http://gwenael-dunand.developpez.com/tutoriels/cpp/boost/asio/去,這是給我的錯誤的負載上 boost::bind(&tcp_server::handle_accept, this, new_connection, boost::asio::placeholders::error); 我使用它在這裏 m_accept