std :: string - 小字符串优化和交换

ybu*_*ill 11 c++ c++11

来自N3290,[container.requirements.general]:

a.swap(b)对于除标准容器类型的容器a和b之外的表达式,array应交换a和b的值,而不对单个容器元素调用任何移动,复制或交换操作.

这如何与小字符串优化相互作用?他们忘了添加std::string吗?

ild*_*arn 11

(重新发表评论)

std::string不是一个容器 - FDIS章节(§23)中basic_string没有描述的事实Containers library是一个很好的线索.; - ]

  • 21.4**曾经**声称basic_string是一个容器,但FDIS显然已经删除了. (3认同)
  • @Bo:是的,你似乎也是对的.但是在旧标准中它是21.3,C++ 98:"basic_string符合可逆容器的要求". (3认同)