Linux C++程序运行的问题 10C

在windows上运行没有问题,但是在Linux运行中出现了

error: cannot pass objects of non-trivially-copyable type ‘std::string {aka class std::basic_string}’ through ‘...’这样的错误。

所在文件的情况:
文件中包含string头文件;
代码中对应了LOG的代码部分:
PLOGINFO("jsonhelp parse1 %s", pret.c_str());

函数声明:
#define PLOGINFO(fmt, ...) PLOG(LOGLEVEL::LOG_INFO, fmt, ##__VA_ARGS__);
void PLOG(LOGLEVEL loglevel, const char* fmt, ...);

确实是不知道到底是怎么回事,在网上查到的都是没有加.c_str函数,但是我确实加了的。

c++

3个回答

把你的PLOG函数 ,第二个参数以后的“...”删了,从新编译试试。c++的新规则已经在淘汰这种写法

VA_ARGS貌似是VS的,linux应该这么定义:
#define PLOGINFO(fmt...) PLOG(LOGLEVEL::LOG_INFO, ##fmt);

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!