通过引用传递地图时缺少模板参数

时间:2014-03-11 03:04:44

标签: c++ map

我有以下方法标题:

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);

2 个答案:

答案 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)。