错误"预期表达"在此模板代码中

时间:2013-05-12 15:08:44

标签: c++ templates

为什么会出现此错误以及如何解决?

template<typename T>
struct foo {
  template<size_t N>
  void hello() {}
};

template<typename T>
struct bar {
  void world() {
    foo<T> f;
    f.hello<0>(); //Error: Expected expression
  }
};

1 个答案:

答案 0 :(得分:17)

您需要使用template消歧器,因此编译器将知道它将解析hello作为模板成员函数的名称,以及随后的<和{{1分隔模板参数的角括号:

>