La conversion de std::__cxx11::string à std::string

J'utilise c++11, mais aussi un certain nombre de bibliothèques qui ne sont pas configurés pour elle, et besoin d'un certain type de conversion. En particulier, j'ai besoin d'un moyen de convertir std::__cxx11::string régulièrement std::string, mais une recherche sur google, je ne peux pas trouver un moyen de faire cela et de mettre (string) en avant ne fonctionne pas.

Si je n'ai pas convertir-je obtenir de l'éditeur de liens erreurs de ce type:

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'
  • L'erreur sonne plus comme le compilateur ne trouve pas le insertMember() méthode.
  • Hm, il peut trouver avec les autres programmes que j'ai qui n'utilisent pas c++11
  • En fait il semble être l'éditeur de liens, pas le compilateur. Que signifie "trouver" veut dire, quelles sont ces "autres programmes"?
  • En outre, je suppose que vous êtes en utilisant gcc. Je m'attends à ce qu'il y a quelques typedef __cxx11::basic_string basic_string quelque part dans std espace de noms de la chaîne d'en-tête. Faire de la compilation de l'unité de compilation contenant H5::CompType ainsi?
  • "trouver", comme dans la recherche d'un moyen de convertir sur google. "autres programmes": en plaindre ici, c'est le hdf5 de bibliothèque, dont je ne suis pas compiler moi-même (à l'aide de bibliothèques sur les ordinateurs partagés).
  • Vous avez dit "il peut trouver avec les autres programmes que j'ai", mais votre dernier commentaire n'est pas vraiment en forme de phrase. Veuillez préciser
  • "J'utilise c++11, mais aussi un certain nombre de bibliothèques qui ne sont pas configurés pour elle". Cette situation est problématique, et vous ne peut pas vraiment s'attendre à des choses à travailler. gcc.gnu.org/wiki/Cxx11AbiCompatibility web.archive.org/web/20170210052503/http://... et ainsi de suite.
  • Oh désolé, pas de "trouver", je voulais dire que d'autres programmes (qui ne comprennent pas les hdf5 bibliothèque) ne donnent pas l'erreur de l'éditeur de liens.
  • Votre hdf5 de la bibliothèque a été compilé avec le vieux GCC ABI. Soit demander à quelqu'un de le recompiler ou voir ma réponse.
  • J'ai trouvé ma voie à cette question après le dépannage, j'ai donc pensé que je pourrais partager avec vous, le problème est que j'ai été en utilisant gcc au lieu de g++ compiler...

InformationsquelleAutor jorgen | 2015-10-28