Передать функцию как явный параметр шаблона

В приведенном ниже примере кода вызовfoo работает, пока звонокbar выходит из строя.

Если я закомментирую звонокbar, код компилируется, что говорит мне определениеbar само по себе хорошо. Так как быbar правильно называться?

#include <iostream>

using namespace std;

int multiply(int x, int y)
{
    return x * y;
}

template <class F>
void foo(int x, int y, F f)
{
    cout << f(x, y) << endl;
}

template <class F>
void bar(int x, int y)
{
    cout << F(x, y) << endl;
}

int main()
{
    foo(3, 4, multiply); // works
    bar<multiply>(3, 4); // fails

    return 0;
}

Ответы на вопрос(2)

Ваш ответ на вопрос