【发布时间】:2011-09-21 19:08:09
【问题描述】:
从my previous question 开始,我们能否证明标准允许我们将空范围传递给标准算法?
第 24.1/7 段将“空范围”定义为范围 [i,i)(其中 i 是有效的),而 i 似乎可以从自身“到达”,但我不确定这有资格作为证明。
特别是,我们在查看排序函数时遇到了麻烦。例如std::sort:
复杂性:
O(N log(N))(其中N==last-first)比较
既然log(0)一般被认为是未定义的,我也不知道0*undefined是什么,这里会不会有问题?
(是的,好吧,我有点迂腐。当然,没有自尊的 stdlib 实现会导致传递给std::sort 的空范围的实际问题。但是我想知道这里的标准措辞是否存在潜在漏洞。)
【问题讨论】:
-
两个 SO 用户需要阅读
language-lawyer标签 wiki:«典型问题涉及“通常在实践中有效的内容”和“规范实际保证的内容”之间的差距。»
标签: c++ c++11 language-lawyer std