Я пытаюсь вызвать шаблонную функцию-член, используя std::invoke
, как показано в приведенном ниже коде.
#include <functional>
#include <iostream>
struct Node
{
template <typename T>
T eval(T lhs, T rhs) { return lhs + rhs; }
};
int main(void)
{
std::cout << std::invoke(&Node::eval<int>, 1, 2);
return 0;
}
GCC 8.1 дает мне ошибку
нет соответствующей функции для вызова 'invoke (неразрешенная перегружена
тип функции, int, int) '
что, я думаю, означает, что шаблон функции фактически не создается.
Чего мне не хватает, чтобы сделать звонок возможным?