Cześć,
Nie potrafię napisać w C++11 funkcji przyjmującej jako argument dowolną funkcję (tzn. o dowolnym typie zwracanym i dowolnej liczbie i typach argumentów).
Próbowałem z szablonami funkcji ale to działa tylko dla ustalonej liczby argumentów:
// definicja:
template<typename Zwrot, typename Arg>
void pomiarCzasuWykonaniaFunkcji(std::function<Zwrot(Arg)> wskDoFunkcji, Arg arg)
{
//... ustalenie chwili obecnej tPocz.
wskDoFunkcji(arg); // wywolanie danej funkcji.
//... ustalenie chwili obecnej tKonc.
//... wydruk wartosci: tKonc - tPocz
}
// przykladowe wywolanie:
pomiarCzasuWykonaniaFunkcji<void, int> (foo, 5) // dla: void foo(int x);
Ale jak to zrobić dla dowolnej liczby argumentów?
M.