PLCXProcess.cpp:4221:92: error: cannot pass objects of non-trivially-copyable type 'std::string {aka class std::basic_string<char>}' through '...' pLogger->info("Error number:[%s] ;Error Msg:[%s] \n ", ex.getErrorCode(), ex.getMessage());
时间: 2024-03-27 17:40:51 浏览: 90
parallel-hashmap:一系列仅标头,非常快速且对内存友好的hashmap和btree容器
这个错误是因为在使用可变参数函数时,传递了非平凡复制类型的对象,例如std::string。可变参数函数需要将参数复制到堆栈中,因此需要执行复制构造函数,而对于非平凡复制类型,复制构造函数可能无法正确执行。要解决这个问题,你可以使用std::string的c_str()函数将其转换为C风格字符串传递给可变参数函数。修改代码如下:
```
pLogger->info("Error number:[%s] ;Error Msg:[%s] \n ", ex.getErrorCode().c_str(), ex.getMessage().c_str());
```
阅读全文