nos*_*sid 7 c++ string libstdc++ c++11
我最近了解到,自几年以来,libstdc ++库包含vstring(也称为versa_string),它提供了相同的功能std::string,但显然更符合C++标准.我曾试图用它vstring作为替代品std::string,但我发现没有简单的方法可以做到.
有没有一种简单的方法来代替std::string用vstring,在不改变的libstdc ++源代码?
我可以用std::string别名替换代码中的所有用法,如下面的清单所示.然而,这种方法的问题在于,它std::string也在某些地方内部使用,例如在std::ostringstream.这意味着,这些陈述std::ostringstream os; my::string s = os.str();不再适用.
namespace my {
#ifdef __GLIBCXX__
using string = __gnu_cxx::__vstring;
#else
using string = std::string;
#endif
}
Run Code Online (Sandbox Code Playgroud)