错误C2544:预期')'为运算符'()'

时间:2012-11-07 06:18:04

标签: c++ templates macros

我收到了以下错误。

typedef std::vector<std::pair<std::string, void*> >  PropInfoType;
#define REGISTER_FUNCTOR(type, func) \
  template <typename OWNER> \
  struct writeCharFunctor { \
    void operator(PropInfoType::iterator& it)() { \
    } \
  };

  REGISTER_FUNCTOR(char,writeChar);

MSDN只是说这是由于macro expansion

如果我将void operator(PropInfoType::iterator& it)()更改为void operator()()则可以

1 个答案:

答案 0 :(得分:4)

它可能应该包含

 void operator () (PropInfoType::iterator& it) { \

因为运营商本身应该跟operator关键字。