error C2146: syntax error : missing ',' before identifier mType when passing a map by function

error C2146: syntax error : missing ',' before identifier mType when passing a map by function

当我声明以下函数时:

#include <vector>
#include <map>
void setTypeByBanknote(tsBanknotes &tsBanknotes, std::map<char, std::vector<byte>> &mType);

我的编译器显示以下错误:

error C2146: syntax error : missing ',' before identifier mType

但如果我执行以下操作:

#include <vector>
#include <map>
typedef std::vector<byte> tvByteVector;
void setTypeByBanknote(tsBanknotes &tsBanknotes, std::map<char, tvByteVector &mType);

我的编译器没有显示任何错误并且编译正确

有没有什么方法可以在不使用 typedef 的情况下将此映射作为参数传递?

我正在使用 visual 6.0 as IDE,我知道它很旧。问题是因为旧的 IDE 吗?我确实包含矢量和地图库。

提前致谢!

std::map<char, std::vector<byte> >
                               ^^^^

您需要在两个 > 之间添加一个 space,例如 > >。否则,非常古老的 VS 6.0 会与运算符 >> 混淆。最好更新一下编译器。