У меня вот такой 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 {
...
}
Но я получаю такую ошибку:
syntax error: missing ';' before '<'
Любые идеи?
Представьте свой минимальный воспроизводимый пример
Невозможно воспроизвести ошибку





Так что включите этот другой файл в этот, иначе как ваш компилятор вообще узнает, что такое MapVector?
Кажется, что MapVector неполон, когда вы его печатаете. Он включен до того, как вы его наберете? Можете ли вы попробовать определить класс с MapVector вместо typedef? Просто чтобы убедиться, что это полный тип.