LINUX.ORG.RU

История изменений

Исправление quasimoto, (текущая версия) :

функцию

Если функцию, а не функтор, то тут ни loki ни даже <functional> не нужны

int foo(int(&f)(int, int)) { return f(2, 3); }
int foo(int(&f)(std::string const&)) { return f("ok"); }

Вообще не придраться :)

Если замыкание, то

int foo(std::function<int(int, int)> const& f) { return f(2, 3); }
int foo(std::function<int(std::string const&)> const& f) { return f("ok"); }

Тут всякие претензии на ужасы внутри стандартных заголовков не принимаются, т.к. туда смотреть не полагается :)

З.Ы.

class Foo t where foo :: t -> Int
instance a ~ Int => Foo (a -> a -> a) where foo f = f 2 3
instance a ~ String => Foo (a -> Int) where foo f = f "ok"

Исходная версия quasimoto, :

функцию

Если функцию, а не функтор, то тут ни loki ни даже <functional> не нужны

int foo(int(&f)(int, int)) { return f(2, 3); }
int foo(int(&f)(std::string const&)) { return f("ok"); }

Вообще не придраться :)

Если замыкание, то

int foo(std::function<int(int, int)> const& f) { return f(2, 3); }
int foo(std::function<int(std::string const&)> const& f) { return f("ok"); }

Тут всякие претензии на ужасы внутри стандартных заголовков не принимаются, т.к. туда смотреть не полагается :)