ホームページ >バックエンド開発 >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:14748ブラウズ

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

Converting std::__cxx11::string to std::string

C で、標準用に構成されていないライブラリと C 11 を併用する場合、型変換が必要になります。 。具体的には、std::__cxx11::string から std::string への変換が必要になることがよくあります。

問題ステートメント:

以前は、次のような構成を使用してこの変換を実行しようとしていました。 (string) が失敗し、同様のリンカー エラーが発生しましたto:

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。