首頁 >後端開發 >C++ >如何在 C 11 中將 std::__cxx11::string 轉換為 std::string?

如何在 C 11 中將 std::__cxx11::string 轉換為 std::string?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-17 19:00:14751瀏覽

How to Convert std::__cxx11::string to std::string in C  11?

將std::__cxx11::string 轉換為std::string

在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&amp;, unsigned long, H5::DataType const&amp;) const'

解:

使用GCC 5 並嘗試連結使用_GLIBCXX_USE_CXX11_ABI 巨集的不同值編譯的物件檔案時,可能會發生此問題。若要解決此問題,請以下列方式重新定義巨集:

#define _GLIBCXX_USE_CXX11_ABI 0

將此定義放在程式碼中任何包含標準函式庫標頭之前。

以上是如何在 C 11 中將 std::__cxx11::string 轉換為 std::string?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn