gpt4 book ai didi

c++ - 为什么mac不需要包含智能指针?

转载 作者:行者123 更新时间:2023-12-02 09:56:55 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Why does omission of "#include <string>" only sometimes cause compilation failures?

(7 个回答)


2年前关闭。




我在mac上偶然发现了一个令人惊讶的行为。当我使用智能指针并使用苹果的 clang 编译时,即使我不包含内存头,它也会编译。
当我从终端编译或使用 IDE 时会发生这种情况。当我使用 clion 时,它不会通知我丢失的标题或任何东西。
当我尝试在 Linux 上构建时,这会导致问题,因为缺少 header 。有没有办法可以强制 clion 或编译器对此更加严格?

最佳答案

这里的问题是 C++ 标准只要求适当的 #include将您想要的功能引入编译单元。这是设计使然,甚至允许编译器编写者将一些 C++ 标准库功能硬编码到编译器中!

许多 C++ 标准库实现 #include隐式引入 C++ 标准库功能的头文件。在这方面,有些人比其他人更糟糕。

除了严格使用强制的 #include 之外,您实际上无能为力。小号;您几乎可以通过反复试验来解决一些问题。

关于c++ - 为什么mac不需要包含智能指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59353757/

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