34 16 C:\Users\takyi\Desktop\δÃüÃû1.cpp [Error] cannot pass objects of non-trivially-copyable type 'std::string {aka class std::basic_string<char>}' through '...'
时间: 2023-10-15 19:07:07 浏览: 73
yolov5s nnie.zip
这个错误提示表明在 C++ 代码中,你不能通过 '...'(省略号)语法传递非平凡可复制类型的对象,例如 'std::string'。
在 C++ 中,'...' 是可变参数模板的一部分,用于接收任意数量和类型的参数。然而,对于非平凡可复制类型的对象,编译器无法自动地生成默认的复制构造函数和复制赋值运算符,因此无法正确地处理这些对象。
要解决这个问题,你可以考虑以下几种方法:
1. 使用引用或指针传递对象:将对象作为引用或指针传递给函数,而不是使用 '...'。这样可以避免复制非平凡可复制类型的对象。
2. 使用模板参数:如果你能确定传递的对象的类型,可以将其作为模板参数传递给函数或类模板。这样编译器就能够生成正确的复制构造函数和复制赋值运算符。
3. 重新设计函数接口:如果可能的话,重新设计函数接口以避免需要传递非平凡可复制类型的对象。
请根据你的具体情况选择适合的解决方案,并对代码进行相应的修改。
阅读全文