template <
typename funct
>
double find_min (
const funct& f
)
{ return 0.0; }
class ABC {
public:
void run(double (*function_ptr)(double))
{
find_min((*function_ptr));
}
};
double my_func(double) { return 1.0; }
int main()
{
ABC abc;
abc.run(my_func);
}
dGVtcGxhdGUgPAogICAgdHlwZW5hbWUgZnVuY3QgCiAgICA+CmRvdWJsZSBmaW5kX21pbiAoCiAgICBjb25zdCBmdW5jdCYgZgopCnsgcmV0dXJuIDAuMDsgfQoKY2xhc3MgQUJDIHsKcHVibGljOgogICAgdm9pZCBydW4oZG91YmxlICgqZnVuY3Rpb25fcHRyKShkb3VibGUpKQogICAgewogICAgICAgIGZpbmRfbWluKCgqZnVuY3Rpb25fcHRyKSk7CiAgICB9Cn07Cgpkb3VibGUgbXlfZnVuYyhkb3VibGUpIHsgcmV0dXJuIDEuMDsgfQoKaW50IG1haW4oKQp7CiAgICBBQkMgYWJjOwogICAgYWJjLnJ1bihteV9mdW5jKTsKfQo=