如何调用模板化运算符()()?

时间:2012-06-19 16:12:52

标签: c++ templates compiler-errors operators

我的结构看起来像:

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 ..."

1 个答案:

答案 0 :(得分:6)

这很难看,但是......,

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

<子> Online demo.