在C 中,當與未針對標準配置的函式庫一起使用C 11 時,類型轉換變得必要。具體來說,通常需要將 std::__cxx11::string 轉換為 std::string。
問題陳述:
之前,嘗試使用以下結構執行此轉換(字串)失敗,導致類似的連結器錯誤至:
undefined reference to `H5::CompType::insertMember(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, H5::DataType const&) const'
解:
使用GCC 5 並嘗試連結使用_GLIBCXX_USE_CXX11_ABI 巨集的不同值編譯的物件檔案時,可能會發生此問題。若要解決此問題,請以下列方式重新定義巨集:
#define _GLIBCXX_USE_CXX11_ABI 0
將此定義放在程式碼中任何包含標準函式庫標頭之前。
以上是如何在 C 11 中將 std::__cxx11::string 轉換為 std::string?的詳細內容。更多資訊請關注PHP中文網其他相關文章!