Я попытался построить минимальный пример:
struct Functor
{
void operator()(int& a)
{
a += 1;
}
void other(int& a)
{
a += 2;
}
};
template <typename foo>
class Class
{
public:
void function()
{
int a = 10;
foo()(a);
std::cout << a << std::endl;
}
};
int main()
{
Class<Functor> c;
c.function();
}
Мой вопрос по этому поводу: почему вообще возможно вызвать оператор чистого типа без объекта? Как я могу вызвать функцию other
так же, как я вызываю operator()
?