front和back上的cppreference措辞令人惊讶地(至少对我来说)不对称。front:未定义对空容器调用front。back对空容器调用back会导致undefined behavior。我知道我应该只问一个问题,但还是,1.为什么不同?,以及1.* is undefined * 和 * causes undefined behavior * 之间有什么区别?
front
back
eqqqjvef1#
在C++中,“undefined”和“undefined behavior”之间没有区别。这两个术语指的是同一个概念:标准没有规定某项操作的预期结果的情况。
vsmadaxz2#
未定义和导致未定义行为之间的区别是什么?它们在这里的意思是一样的。为什么不同?很可能是因为该页面由不同的作者编写或/和很长一段时间没有更新。尽管如此,两者的意思是相同的。
该页面现在已经更新,使文档语言更加一致。特别是,现在front说:在空容器上调用front会导致未定义的行为。
2条答案
按热度按时间eqqqjvef1#
在C++中,“undefined”和“undefined behavior”之间没有区别。这两个术语指的是同一个概念:标准没有规定某项操作的预期结果的情况。
vsmadaxz2#
未定义和导致未定义行为之间的区别是什么?
它们在这里的意思是一样的。
为什么不同?
很可能是因为该页面由不同的作者编写或/和很长一段时间没有更新。尽管如此,两者的意思是相同的。
更新
该页面现在已经更新,使文档语言更加一致。特别是,现在front说:
在空容器上调用front会导致未定义的行为。