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 会与运算符 >>
混淆。最好更新一下编译器。
当我声明以下函数时:
#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 会与运算符 >>
混淆。最好更新一下编译器。