- 相關(guān)推薦
c++ minicsv庫(kù)的編譯錯(cuò)誤與解決方案
C++擅長(zhǎng)面向?qū)ο蟪绦蛟O(shè)計(jì)的同時(shí),還可以進(jìn)行基于過(guò)程的程序設(shè)計(jì),因而C++就適應(yīng)的問(wèn)題規(guī)模而論,大小由之。下文是為大家精選的c++ minicsv庫(kù)的編譯錯(cuò)誤與解決方案,歡迎大家閱讀參考。
有一個(gè)項(xiàng)目需要寫csv文件以呈現(xiàn)數(shù)據(jù)。Github上有一個(gè)關(guān)于csv的輕量級(jí)讀寫庫(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)
【c++ minicsv庫(kù)的編譯錯(cuò)誤與解決方案】相關(guān)文章:
C/C++編譯器錯(cuò)誤消息大全09-01
Windows更新錯(cuò)誤解決方案06-25
正確理解PHP程序編譯時(shí)的錯(cuò)誤信息11-12
C語(yǔ)言條件編譯07-22
C語(yǔ)言的編碼編譯08-11
怎么在C語(yǔ)言中調(diào)用C++做的動(dòng)態(tài)鏈接庫(kù)07-15
如何在C語(yǔ)言中調(diào)用C++做的動(dòng)態(tài)鏈接庫(kù)08-15
c語(yǔ)言編譯預(yù)處理10-15
java編譯計(jì)算器08-11