gcc的std :: string COW线程安全吗?

时间:2017-02-22 07:30:51

标签: string gcc stl clang copy-on-write

我用gcc测试并确认gcc的std :: string实现了COW:

#include <string>
#include <iostream>

int main() {
  std::string a(50, 'c');
  std::string b = a;

  *const_cast<char*>(a.c_str()) = 'A';
  std::cout << "a: " << a << "\nb: " << b << std::endl;
}

打印:

a: Accccccccccccccccccccccccccccccccccccccccccccccccc
b: Accccccccccccccccccccccccccccccccccccccccccccccccc

b改为。如果我使用clang或VC,测试结果会有所不同。所以我想知道gcc的字符串COW是否是线程安全的?在多线程环境中使用std :: string是否可以?

0 个答案:

没有答案