Понимание std :: function и std :: bind

Я играл arround с std :: function и std :: bind, и я заметил что-то не интуитивное, и я хотел бы понять это лучше.

Например:

void fun()
{
}

void hun(std::string) 
{ 
}

int main()
{

   function g = &fun; //This fails as it should in my understanding.

   function f = std::bind(fun); //This works for reasons unknown to me     
   function h = std::bind(hun); //this doesn't work

return 0;
}

Как можно связатьfunction к функции, котораянедействительными (), Затем я мог бы вызвать f (1) и получить удовольствие (). Я хотел бы понять, как это делается. Переход внутри Microsoft Visual Studio 2012 'Эта реализация заставила меня потеряться в море нечитаемых макросов. вот почему я задаю этот вопрос здесь.

Ответы на вопрос(2)

Ваш ответ на вопрос