當前位置:才華齋>計算機>C語言>

c++ minicsv庫的編譯錯誤與解決方案

C語言 閱讀(2.3W)

C++擅長面向物件程式設計的同時,還可以進行基於過程的程式設計,因而C++就適應的問題規模而論,大小由之。下文是為大家精選的c++ minicsv庫的編譯錯誤與解決方案,歡迎大家閱讀參考。

c++ minicsv庫的編譯錯誤與解決方案

有一個專案需要寫csv檔案以呈現資料。Github上有一個關於csv的輕量級讀寫庫minicsv,於是下載之。但是編譯example時出現了以下問題:

In file included from :1:0:

: In function 'csv::ofstream& operator<<(csv::ofstream&, const T&)':

:38: error: no matching function for call to 'csv::ofstream::escape_and_output(std::basic_ostringstream<char>::__string_type)'

pe_and_output(os_());

^

:38: note: candidate is:

:8: note: void csv::ofstream::escape_and_output(std::string&)

void escape_and_output(std::string & src)

...

錯誤很多,不再貼出,佔用篇幅。這些錯誤都來自於同一個函式頭。這個函式頭是這樣定義的:

void escape_and_output(std::string & src)

而呼叫時是這個樣子:

pe_and_output(os_());

很明顯,呼叫時的.函式頭所要求的是右值引用,而真正的函式頭給出的左值引用,兩者不符,於是編譯器報錯。修改很簡單,“&”改為“&”即可,即把函式頭改成這個樣子:

void escape_and_output(std::string & src)