如何调用模板化的运算符()()?(How do I call a templatized opera

2019-10-16 21:45发布

我有一个结构,看起来是这样的:

struct foo_t
{
    template <std::size_t x, std::size_t y>
    std::size_t operator()() const
    { return /*something dealing with x and y*/; }
};

该定义似乎编译罚款,但我怎么称呼呢? 我似乎无法得到任何过去的编译:

foo_t foo;
foo<3, 3>(); // ERROR: Compiler seems to think I'm asking for "foo < 3 ..."

Answer 1:

这是丑陋的,但..,

foo_t foo;
foo.operator()<3, 3>();

在线演示。



文章来源: How do I call a templatized operator()()?