c++ minicsv庫(kù)的編譯錯(cuò)誤與解決方案
有一個(gè)項(xiàng)目需要寫(xiě)csv文件以呈現(xiàn)數(shù)據(jù)。Github上有一個(gè)關(guān)于csv的輕量級(jí)讀寫(xiě)庫(kù)minicsv,于是下載之。但是編譯example時(shí)出現(xiàn)了以下問(wèn)題:
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)
...
錯(cuò)誤很多,不再貼出,占用篇幅。這些錯(cuò)誤都來(lái)自于同一個(gè)函數(shù)頭。這個(gè)函數(shù)頭是這樣定義的:
void escape_and_output(std::string & src)
而調(diào)用時(shí)是這個(gè)樣子:
ostm.escape_and_output(os_temp.str());
很明顯,調(diào)用時(shí)的函數(shù)頭所要求的是右值引用,而真正的函數(shù)頭給出的左值引用,兩者不符,于是編譯器報(bào)錯(cuò)。修改很簡(jiǎn)單,“&”改為“&”即可,即把函數(shù)頭改成這個(gè)樣子:
void escape_and_output(std::string & src)
錯(cuò)誤很水,本來(lái)也不想寫(xiě)出來(lái),但是又怕對(duì)c++0x不熟悉的人會(huì)不知所措,故貼之。還有我不知道為何項(xiàng)目中會(huì)留下這么個(gè)顯而易見(jiàn)的錯(cuò)誤——或許那個(gè)老大的編譯器太智能了吧。
相關(guān)文章
C語(yǔ)言用fun函數(shù)實(shí)現(xiàn)兩個(gè)數(shù)的交換方式
這篇文章主要介紹了C語(yǔ)言用fun函數(shù)實(shí)現(xiàn)兩個(gè)數(shù)的交換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12C語(yǔ)言中static與sizeof查缺補(bǔ)漏篇
static在修飾變量的時(shí)候,如果是修飾全局變量,則跟全局變量功能一樣;如果是修改局部變量,則每次調(diào)用的時(shí)候,保持著上一次的值;而sizeof是用來(lái)判斷一個(gè)變量及數(shù)據(jù)類型所占字節(jié)數(shù)的,下面我們?cè)敿?xì)來(lái)看看2022-07-07C++ main函數(shù)的幾點(diǎn)細(xì)節(jié)
這篇文章主要介紹了C++ main函數(shù)的幾點(diǎn)細(xì)節(jié),幫助大家更好的理解和學(xué)習(xí)C++,感興趣的朋友可以了解下2020-08-08C語(yǔ)言實(shí)現(xiàn)超市信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)超市信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03C++實(shí)現(xiàn)正態(tài)隨機(jī)分布的方法
本篇介紹了,使用c++實(shí)現(xiàn)正態(tài)隨機(jī)分布的實(shí)現(xiàn)方法。需要的朋友參考下2013-05-05C語(yǔ)言實(shí)現(xiàn)三角函數(shù)表
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言三角函數(shù)表,打印出相對(duì)應(yīng)的三角函數(shù)值,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06在C++17中實(shí)現(xiàn)無(wú)鎖數(shù)據(jù)結(jié)構(gòu)的方法詳解
在探索?C++17?中的無(wú)鎖數(shù)據(jù)結(jié)構(gòu)之前,我們首先需要理解無(wú)鎖編程的基本概念及其在現(xiàn)代軟件開(kāi)發(fā)中的重要性,在這個(gè)章節(jié)中,我們將深入探討無(wú)鎖編程的概念,以及它如何滿足人類對(duì)于更高效、更可靠軟件的本能需求,文中通過(guò)代碼示例介紹的非常詳細(xì),感興趣的朋友可以參考下2023-12-12C++中const的實(shí)現(xiàn)機(jī)制深入分析
C語(yǔ)言以及C++語(yǔ)言中的const究竟表示什么?其具體的實(shí)現(xiàn)機(jī)制又是如何實(shí)現(xiàn)的呢?本文將對(duì)這兩個(gè)問(wèn)題進(jìn)行一些分析,需要了解的朋友可以參考下2012-12-12