与在当前C ++中将standard
进行了所有化处理不同,是否有任何特定的原因要使int
,char
,...,main()
和其他内容退出。 (因为它们不是特定于语言的,所以不谈论+
,-
,%
..)
为什么不这样:
std::int std::main(std::int argc, std::char *argv[])
{
//Sample C++ code (incorrect with current standards though)
std::return 0;
}
标准化不是超出标准范围吗?
我相信,它们是编写程序时随处可见的基本组件,无论是简单的还是复杂的。它们只是遵循 DRY 原则而未包含在标准化中。
答案 0 :(得分:9)
the C++ standard中包含int
和return
之类的关键字以及main()
函数。 std
并不意味着只有那些东西是标准化的。相反,它引用标准库中的内容(类似于关键字,它是标准的一部分)。要使用标准库,需要使用诸如#include <vector>
之类的包含文件,但可以在没有任何#include
的情况下使用关键字。
答案 1 :(得分:9)
std::
是标准库的名称空间名称。但是C ++具有内置类型,这些类型更为基本。实际上,标准库的重要部分是使用int
之类的类型构建的。如果标准库依赖于它本身,您将看到鸡和蛋的问题。
答案 2 :(得分:3)
您提到的类型是关键字。关键字不是标识符,因此不能属于范围或名称空间。在程序解析过程中,发现关键字的时间要早于标识符。
更改程序入口点的名称空间(当前为::main
)意味着到处的所有链接器都必须更新,因此我怀疑是否会支持这种移动。同样也违反了std
用于标准库而不用于用户代码,而用户编写main
中使用的代码的原则。
答案 3 :(得分:0)
据我所知。 Int是原始(原始)数据类型。主要数据类型已经在编程语言中定义,也称为原始或内置数据类型。 “ int”数据类型就是其中之一。在某些语言中,您可以看到一些byte,short,int,long,char,float,double或boolean关键字用作其自身。
希望我有帮助。