我有以下方法标题:
bool ParseMessage(char* buffer, int &fromNode, map<int, string> &messages, const int MAX_CHARS_PER_LINE = 512, const int MAX_TOKENS_PER_LINE = 20, const char* const DELIMITER = "#");
我正在尝试使用以下方法调用该方法:
rnod->parser.ParseMessage("@3702~10~Hi", from, &messages);
消息是:
map<int, string> messages;
但我一直收到错误:错误:')'令牌之前缺少模板参数 rnod-&gt; parser.ParseMessage(“@ 3702~10~Hi”,from,&amp; messages);
答案 0 :(得分:0)
它应该是rnod->parser.ParseMessage("@3702~10~Hi", from, &messages);
中的消息而不是&amp;消息
&amp; messages实际上传递了消息的地址
答案 1 :(得分:0)
在DELIMITER之前删除那个双const怎么样?模板函数仅在使用时编译,因此仅在使用函数时才会显示某些语法错误定义。
bool ParseMessage(char* buffer, int &fromNode, map<int, string> &messages, const int MAX_CHARS_PER_LINE = 512, const int MAX_TOKENS_PER_LINE = 20, const char* DELIMITER = "#");
然后是的,在调用函数时使用消息(而不是&amp; message)。