[我写了对How is it possible to use pow without including cmath library的答复时,我担心已经证明缺少所需标头的包含实际上是未定义的行为,但是由于我没有发现对此事实的任何同意,因此我想提出一个正式问题:
缺少必需的标题,即
#include <iostream>
int main()
{
std::cout << std::pow(10, 2);
}
[和我的answer一样,我倾向于肯定两个问题,但是由于Difference between Undefined Behavior and Ill-formed, no diagnostic message required,[using.headers]非常令人困惑。正如[defns.well.formed]表示构造到ODR的程序格式正确,并且有规范说明每当例如iostream
不能定义pow
时,有人可能会说这仍然是未指定的行为([defns .unspecified])。对于这样一个重要的问题,我不想仅仅依靠我的标准口译技能来给出明确的答案。请注意,如果代码是UB,也不会问问题,那么被接受的(即唯一的)其他答案不会回答。
当我写了一个关于如何在不包含cmath库的情况下如何使用pow的答案时,我担心已经证明缺少所需头文件的包含实际上是未定义的行为,但是由于我有...
这是未指定