Tôi đã chơi arround với std :: function và std :: bind và tôi nhận thấy một cái gì đó không trực quan và tôi muốn hiểu nó tốt hơn.Hiểu std :: function và std :: bind
Ví dụ:
void fun()
{
}
void hun(std::string)
{
}
int main()
{
function<void(int)> g = &fun; //This fails as it should in my understanding.
function<void(int)> f = std::bind(fun); //This works for reasons unknown to me
function<void(int, std::string)> h = std::bind(hun); //this doesn't work
return 0;
}
Làm thế nào là nó có thể để ràng buộc một function<void(int)>
đến một chức năng đó là void(). Sau đó tôi có thể gọi f (1) và vui chơi(). Tôi muốn hiểu cách thực hiện điều này. Đi bên trong Microsoft Visual Studio 2012 thực hiện điều này đã cho tôi bị mất trong một biển của các macro không đọc được. vì vậy đó là lý do tại sao tôi hỏi câu hỏi này ở đây.
Tôi đang sử dụng phiên bản Express2012. – Alex
bạn có thể giới thiệu một trang web như vậy? – Alex
Biên dịch với _clang_ và _g ++ _ cả hai. 1, tình huống thú vị. – soon