gpt4 book ai didi

c++ - "built-in"C++ 函数

转载 作者:行者123 更新时间:2023-11-30 00:56:05 25 4
gpt4 key购买 nike

我是 C++ 的初学者,所以如果答案很明显,它可能就是我正在寻找的答案。我正在阅读 this thread 中的第二个回复并感到困惑。

#include <algorithm>
#include <cassert>

int
main()
{
using std::swap;
int a(3), b(5);
swap(a, b);
assert(a == 5 && b == 3);
}

我不明白的是“这只是一个定义的函数。我的意思是,为什么它不是直接内置的”但是没有必要 include 一个新的库所以它不是内置的吗? std 库是否自动导入(如果是,为什么命名空间不自动设置为 std)?

最佳答案

"This is just a defined function. What I meant was, why it is not directly built-in" but there was no need to import a new library so isn't it built-in? Does the std library automatically get imported (if yes, why doesn't the namespace automatically get set to std)?

嗯,defined function 的意思是,很可能该函数已经预先编写,并在中定义,它不是直接内置的可能是因为它是那样设计的;语言中只包含核心要素,其他所有内容都在库中,因此程序员可以导入他们想要的

内置的,一般是关键字,比如for或者while

不,std 不会自动导入,因为它的设计目的是让程序员可以选择他们想要的命名空间,例如自定义命名空间或 std。自动拥有 std 不好的一个例子是:

假设你自动定义了 std,然后你想做 using namespace foo;,现在如果 foo 也有函数 cout,你会遇到一个大问题,比如说你想这样做;

// code above
cout << "Hello, World" << endl;
// code below

编译器将如何使用 which namespace function to use?默认还是您的 foo 命名空间 cout?为了防止这种情况,没有设置默认命名空间,留给程序员。

希望对您有所帮助!

关于c++ - "built-in"C++ 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10985812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com