警告:不能通过 ‘.’ 传接有非简单旧数据类型 ‘const struct std:basic_string
警告:不能通过 ‘...’ 传递有非简单旧数据类型 ‘const struct std::basic_string<char, std::char_traits
请问这个问题如何解决?
printf("#connect kv error host[%s] port[%d]#", host.c_str(), port);
把这句用宏定义就会出现标题里的警告?
------解决方案--------------------
沙发,没看出啥问题。
------解决方案--------------------
好像没看出什么问题呢
------解决方案--------------------
命令空间?在两个参数前面加个强制转换试试?或者把这个宏前面的代码(包括头文件)都贴出来看看...
报错的完整信息也贴出来下...
------解决方案--------------------
printf("#connect kv error host[%s] port[%d]#", host.c_str(), port);
这个用宏定义???
------解决方案--------------------
问问题不贴出错的代码,反而把没错的代码贴上来?
从警告内容里可以看出,十有八九是define的时候host.c_str()被define错了,所以才说printf函数不接受host这种标准库类云云
这种问题不贴define那一行,谁知道你怎么错的?
------解决方案--------------------
猜得没错的话,很明显的,你的port或host,在宏定义里是另一个字符串参数,导致出差错了。
请问这个问题如何解决?
printf("#connect kv error host[%s] port[%d]#", host.c_str(), port);
把这句用宏定义就会出现标题里的警告?
------解决方案--------------------
沙发,没看出啥问题。
------解决方案--------------------
好像没看出什么问题呢
------解决方案--------------------
命令空间?在两个参数前面加个强制转换试试?或者把这个宏前面的代码(包括头文件)都贴出来看看...
报错的完整信息也贴出来下...
------解决方案--------------------
printf("#connect kv error host[%s] port[%d]#", host.c_str(), port);
这个用宏定义???
------解决方案--------------------
问问题不贴出错的代码,反而把没错的代码贴上来?
从警告内容里可以看出,十有八九是define的时候host.c_str()被define错了,所以才说printf函数不接受host这种标准库类云云
这种问题不贴define那一行,谁知道你怎么错的?
------解决方案--------------------
猜得没错的话,很明显的,你的port或host,在宏定义里是另一个字符串参数,导致出差错了。