std :: string总是以C ++ 11为空终止?
Herb Sutter在他的网站2008年的一篇文章中指出:
有一个积极的build议,在C ++ 0x中进一步收紧,并要求空终止,并可能禁止写入时复制的实现,为并发相关的原因。 以下是论文: http : //www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2534.html 。 我认为本文中的一个或两个提案很可能会被采纳,但是我们将在下一次或两次会议上看到。
我知道C ++ 11现在可以保证std :: string的内容是连续存储的,但是他们是否在最后的草稿中采用了上面的内容?
现在是否可以安全地使用像&str[0]这样的东西? 
 是。 根据C ++ 0x FDIS 21.4.7.1/1,必须返回std::basic_string::c_str() 
一个指针
p,使得p + i == &operator[](i)对于[0,size()]每个i。
 这意味着给定一个strings , s.c_str()返回的指针必须与string中的初始字符地址( &s[0] )相同。