概述 GCC 8.2提供了两个版本的std::string:一个是基于Copy On Write的,另一个直接字符串拷贝的.前者针对C++11以前的,那时候没有移动构造,一切以效率为先,需要使用COW这种奇技淫巧.后者针对C++11,也就是_GLIBCXX_USE_CXX11_ABI宏被设置为非零时会被用到,并没有COW的功能,更简单,用户可以在必要时使用移动构造.如果不使用移动构造,字符串的频繁拷贝将会是异常灾难,这一点,在我的项目中已经踩过坑. 本文主要研究Modern C++中的strin…