为什么 'int' 在 C++ 中只用作 int 而为什么不用作 std::int ?

dea*_*ock 8 c++ standards std

standard当前 C++ 中的所有内容不同,是否有任何特定原因要离开int, char, ....main()和其他人。(不是说+, -, %,.. 因为它们不是特定于语言的)

为什么不像:

std::int std::main(std::int argc, std::char *argv[])
{
    //Sample C++ code (incorrect with current standards though)
    std::return 0;
}
Run Code Online (Sandbox Code Playgroud)

超出标准范围的标准化不是不完整的吗?

我相信,它们是编写程序时随处可见的基本组件,无论是简单的还是复杂的。它们不包含在标准化中,只是为了遵循DRY原则。

MSa*_*ers 10

std::是标准库的命名空间名称。但是 C++ 具有内置类型,而且这些类型更为基础。事实上,标准库的重要部分是使用诸如int. 如果标准库依赖于它自己,你就会看到先有鸡还是先有蛋的问题。


vll*_*vll 9

intreturnmain()函数等关键字都包含在C++标准中std并不意味着只有那些东西是标准化的。相反,它指的是标准库中的东西(与关键字一样,是标准的一部分)。包含#include <vector>使用标准库所需的文件,但可以在没有任何#includes 的情况下使用关键字。

  • 但它并不包括标准化的所有内容,例如语言规范。这就是@vll的意思 (2认同)