Autor Wątek: [c++]Funkcja jako argument funkcji.  (Przeczytany 613 razy)

Offline Bloodian

  • Użytkownik

# Styczeń 06, 2012, 17:16:41
void akcja ( void (*f) ( int , int ))
{
     /////
}


void akcja ( void f ( int , int ))
{
     ////
}

Krótka piłka. Jaka jest różnica ?
W obydwu wypadkach wywoływanie i przekazywanie argumentów działa tak samo.
Tak samo z wywoływaniem funkcji f w funkcji akcja.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Rolek

  • Użytkownik

# Styczeń 06, 2012, 17:30:24
Żadna.

Offline hashedone

  • Użytkownik

# Styczeń 06, 2012, 23:20:41
Może głupie pytanie - od kiedy ta druga składnia jest dozwolona? W życiu się z nią nie spotkałem i w ogóle nie wiedziałem że tak można, stąd zastanawiam się czy to jakaś nowość, czy tak było od dawna.

W C++11 jest jeszcze jedna możliwość:
#include <functional>

void akcja(std::function < void (int, int) > f)
{
  ////
}
Przy czym póki co działa chyba tylko w g++ i clang.