lin*_*s77 44 c++ string null-terminated language-lawyer c++11
在他的网站2008年的一篇文章中,Herb Sutter声明如下:
由于与并发相关的原因,有一个积极的建议是在C++ 0x中进一步加强这一点并且需要空终止并且可能禁止写时复制实现.以下是该文件:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2534.html.我认为本文中的一个或两个提案很可能会被采纳,但我们将在下一个或两个会议上看到.
我知道C++ 11现在保证std :: string内容连续存储,但他们是否在最终草案中采用了上述内容?
现在使用类似的东西会安全&str[0]
吗?
Jam*_*lis 49
是.根据C++ 0x FDIS 21.4.7.1/1,std::basic_string::c_str()
必须返回
一个指针
p
,p + i == &operator[](i)
每个i
in[0,size()]
.
这意味着给定一个字符串s
,返回的指针s.c_str()
必须与string(&s[0]
)中的初始字符的地址相同.
归档时间: |
|
查看次数: |
7517 次 |
最近记录: |