当前位置: 首页 > 编程笔记 >

c++ minicsv库的编译错误与解决方案

蔡鸿骞
2023-03-14
本文向大家介绍c++ minicsv库的编译错误与html" target="_blank">解决方案,包括了c++ minicsv库的编译错误与解决方案的使用技巧和注意事项,需要的朋友参考一下

有一个项目需要写csv文件以呈现数据。Github上有一个关于csv的轻量级读写库minicsv,于是下载之。但是编译example时出现了以下问题:

In file included from example.cpp:1:0:
minicsv.hpp: In function 'csv::ofstream& operator<<(csv::ofstream&, const T&)':
minicsv.hpp:326:38: error: no matching function for call to 'csv::ofstream::escape_and_output(std::basic_ostringstream<char>::__string_type)'
ostm.escape_and_output(os_temp.str());
^
minicsv.hpp:326:38: note: candidate is:
minicsv.hpp:266:8: note: void csv::ofstream::escape_and_output(std::string&)
void escape_and_output(std::string & src)

...

  错误很多,不再贴出,占用篇幅。这些错误都来自于同一个函数头。这个函数头是这样定义的:

    void escape_and_output(std::string & src)

  而调用时是这个样子:

    ostm.escape_and_output(os_temp.str());

  很明显,调用时的函数头所要求的是右值引用,而真正的函数头给出的左值引用,两者不符,于是编译器报错。修改很简单,“&”改为“&”即可,即把函数头改成这个样子:
    void escape_and_output(std::string & src)
  错误很水,本来也不想写出来,但是又怕对c++0x不熟悉的人会不知所措,故贴之。还有我不知道为何项目中会留下这么个显而易见的错误——或许那个老大的编译器太智能了吧。

 类似资料:
  • 我有以下代码: 我希望它输出“0,1,2,3”并停止,但它输出的是一系列无穷无尽的“0、1、2、3、4、5……” 看起来比较< code>di 如果我只是注释掉< code >,delta=mc[di],我会正常得到“0,1,2,3”。无辜作业有什么问题? 我正在使用Ideone.com g14带-O2选项。

  • 问题内容: 我在Java编译器中遇到一个错误,该错误中提交用于编译的文件顺序可能导致代码无法编译。我对代码进行了深入研究,以找出可以重现该问题的最小代码量,从而生成了三个源文件(每个源文件一个类)。 通过以特定顺序使用javac参数可以重现该问题。简而言之,为了成功,必须始终在使用该Actions类的Program类之前对其进行编译,否则javac不能以一种明智的方式对其进行处理: 发生编译错误时

  • 本文向大家介绍解决Android 源码编译错误的问题,包括了解决Android 源码编译错误的问题的使用技巧和注意事项,需要的朋友参考一下 如下所示: Building with Jack: out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex FAILED: /bin/bash ou

  • 我有一个应用程序,它使用Maven构建一个带有Maven汇编插件的JAR。 该项目包括一个依赖项列表,其中一个是另一个Maven项目。我正在使用Eclipse开发,当我运行该项目时,一切都正常。当我使用Maven目标构建时,它会生成JAR,但当我运行JAR时,它会给我这个错误: 这是pom。主项目的xml文件: 这是my utils项目依赖项的pom: 这个问题与Java邮件依赖性有关。如你所见,

  • 本文向大家介绍centos6.5 编译安装lamp以及相关错误的解决方法,包括了centos6.5 编译安装lamp以及相关错误的解决方法的使用技巧和注意事项,需要的朋友参考一下 一、准备工作   1、安装编译工具gcc、gcc-c++ 注意解决依赖关系,推荐使用yum安装,若不能联网可使用安装光盘做为yum源—— 1)编辑yum配置文件: #mount /dev/cdrom /mnt/cdrom

  • 当试图将Irrlicht静态库包含到我的cmake项目中时,您出现了一个编译错误 我不明白为什么它说它找不到,尽管我已经包含了X11库。