2011-08-31 28 views

Trả lời

3
#include <boost/bind.hpp> 

template<typename T> 
void proxy_do_stuff(T return_here) 
{ 
    return_here(); // call stuff pased into boost::bind 
} 

struct myclass 
{ 
    void myfunction(int, int) 
    { 
    } 
    void foo() 
    { 
     int my_function_argument_value = 3; 
     int etc_fun_argument= 5; 
     proxy_do_stuff(boost::bind(&myclass::myfunction, this, my_function_argument_value, etc_fun_argument)); 
    } 
}; 

int main() 
{ 
    myclass c; 
    c.foo(); 
    return 0; 
} 
+0

Và cách sử dụng chức năng như vậy? Chúng ta có nên gọi nó là 'proxy_do_stuff (...)'? – Rella

+0

Tôi đã thêm cách sử dụng phần đó. Không cần bla-bla-bla. –

4

Loại trả về của liên kết tăng :: là loại tăng :: chức năng. Xem bên dưới:

void proxy_do_stuff(boost::function<void()> return_here) 
{ 
    return_here(); // call stuff pased into boost::bind 
} 
+3

+1 Kiểu trả về thực sự là tăng :: _ bi :: bind_t , tăng :: _ bi :: list3 , tăng :: _ bi :: giá trị , tăng :: _ bi :: giá trị >> nhưng bạn đang chuyển đổi nó thành tăng :: chức năng

Các vấn đề liên quan