【问题标题】:How to typedef a template class with typdef name C++如何使用 typdef 名称 C++ 对模板类进行 typedef
【发布时间】:2018-08-13 11:39:07
【问题描述】:

我有这个typedef

typedef uint16_t MCPhysReg;

我想声明(在另一个文件中):

typedef MapVector<unsigned, MCPhysReg> ConsecRegsMap;

MapVector 是一个模板类(来自另一个文件):

template<typename KeyT, typename ValueT,
         typename MapType = llvm::DenseMap<KeyT, unsigned>,
         typename VectorType = std::vector<std::pair<KeyT, ValueT> > >
class MapVector {
...
}

但我收到此错误:

语法错误:缺少';'在'之前

有什么想法吗?

【问题讨论】:

  • 在排版时感觉 MapVector 是不完整的。它是在你 typedef 之前包含的吗?您可以尝试定义一个包含 MapVector 而不是 typedef 的类吗?只是为了确保它是一个完整的类型。
  • 无法重现错误

标签: c++ templates typedef typename


【解决方案1】:

所以在这个文件中包含另一个文件,否则你的编译器怎么会知道MapVector 是什么?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-10
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    相关资源
    最近更新 更多