在他的网站2008年的一篇文章中,Herb Sutter声明如下:
由于与并发相关的原因,有一个积极的建议是在C++ 0x中进一步加强这一点并且需要空终止并且可能禁止写时复制实现.以下是该文件:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2534.html.我认为本文中的一个或两个提案很可能会被采纳,但我们将在下一个或两个会议上看到.
我知道C++ 11现在保证std :: string内容连续存储,但他们是否在最终草案中采用了上述内容?
现在使用类似的东西会安全&str[0]吗?
当使用指向数组的指针时,我总是使用索引器访问元素,例如myPtr[i] = stuff; 然而,我最近在查看BitConverter实现,并发现通过实现访问元素*(myPtr + i) = stuff.
我认为这很奇怪,因为两种方法(从我所知道的)做同样的事情,也就是说,它们返回地址myPtr + i,除了(在我看来)索引器方法看起来更具可读性.
那么为什么微软选择以他们的方式增加指针,这两种方法之间有什么区别(是否有性能优势)?