Grałem w całość z std :: function i std :: bind i zauważyłem coś nieintuicyjnego i chciałbym to lepiej zrozumieć.Zrozumienie std :: function i std :: bind
Na przykład:
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;
}
Jak to możliwe, aby powiązać function<void(int)>
do funkcji, która jest void(). Mogłem wtedy zadzwonić do f (1) i się zabawić(). Chciałbym zrozumieć, jak to się robi. Wdrażanie tego w Microsoft Visual Studio 2012 spowodowało, że zagubiłem się w morzu nieczytelnych makr. dlatego właśnie zadaję to pytanie tutaj.
Używam wersji Express Express vs2012. – Alex
czy możesz polecić taką stronę pls? – Alex
Kompiluje się z _clang_ i _g ++ _ oba. +1, ciekawa sytuacja. – soon