|
|
1
8
见
LWG issue 464
. 这是一个已知的问题。
C++0x(它由MSVC 2010部分实现)通过添加
|
|
|
2
4
就C++标准而言,
在不检查的实现中,
从表68可以看出,表达式的结果是
我忘记了关于是否
就我个人而言,我不会依赖这一点,我也不会取消检查。我重写了你的代码:
或者在这种情况下只是:
在不知道大小至少为n+1的情况下使用向量的索引n对我来说是错误的,不管它在禁用检查后是否在您的实现中实际工作。 |
|
|
3
1
毕竟,当没有项目时,引用应该引用哪个项目?
所以是的,你一直在使用未定义的行为。Visual Studio不是强制的,但仍有形式的签入
|
|
|
4
0
MVS进行范围检查
|
|
|
5
0
这使我想起了一个有趣的问题,我立即问了这个问题。 here . 在您的情况下,可以避免以下方式使用指针:
这将把文件的内容复制到缓冲区
而不是计数器。 |
|
6
0
如果您希望在这种情况下获得更干净的行为,可以替换使用
一个实用的解决方案是使用n+1条目初始化向量,并将访问限制为0..n-1(正如这段代码已经做的那样)。
|
|
|
7
0
你能用迭代器代替指针吗?
|