我有重载的功能
int put_message(int level, int sys_log_level, const char * inp_message);
int put_message(int level, int sys_log_level, const std::string &inp_message);
并调用此函数
put_message(0, LOG_ERR, "clock_gettime error");
代码已编译并可以正常工作 但是Eclipse CDT代码分析器说
无效的参数' 候选人是: int put_message(int,int,const char *) int put_message(int,int,const?&) '
如何解决此错误?
更新: 将LOG_ERR修改为int(LOG_ERR)后,错误消失。 我尚未在标题中添加。 添加即可解决问题。
答案 0 :(得分:0)
您缺少#include <string>
或与字符串类有关的内容
答案 1 :(得分:-2)
您需要将字符串强制转换为正确的类型,编译器将“某些字符串”视为char [],因此您需要将其强制转换为const char *
尝试
put_message(0, LOG_ERR, (const char*)"clock_gettime error");