gpt4 book ai didi

C++ 在头文件中包含 STL

转载 作者:行者123 更新时间:2023-11-30 01:22:13 26 4
gpt4 key购买 nike

在头文件中包含 STL 是个好主意还是坏主意?您将它们用作您自己定义的类的成员变量。

我的假设是,有些人真的希望他们创建的库非常独立于 C++ 标准库。因此,他们被迫再次重写类似于 C++ STL 中可用功能的类型,而其他人则试图在他们的头文件中转发声明他们稍后将需要的类型。这是其他人认为这是一种不好的做法,根本不是一个好主意。

如果我错了请纠正我(我知道的不多所以这一切都只是一个假设):

  1. 那么,当向前声明 STL 上可用的类型时,代码可移植性(对于那些真正希望他们的代码独立于平台的人)有什么影响?(我只知道一种 vector 如 MSDN 所建议,可以前向声明但不能保证始终有效。

  2. 如果我在头文件中包含 STL,会存在什么问题?这会影响我的代码的可移植性吗?

  3. 如果我在我的 DLL 的头文件中包含 STL 并将该 DLL 引入其他计算机,我会遇到什么问题?

  4. 而且,你能告诉我为什么我应该(不应该)在我的 header 中包含 STL 吗?

最佳答案

So what are the effects in terms of code portability (for those whoreally wanted their code to be platform independent) when forwarddeclaring a type available on STL ?

始终使用标准 C++ 和标准库是可移植性的标志。

If I include the STL in my header file, what problem could exist? Andwill this affect the portability of my code?

也许编译时间更长?再一次,请参阅上面的答案。

What if I include STL in the header file of my DLL and bring that DLLin other computers, what problem could I encounter?

大多数情况下,据我所知,DLL 仅“存储”您的类的方法定义。您仍然需要在 .h 文件中包含 STL header 。

And, can you give me an enlightenment why I should (should not)include STL in my header?

你应该,因为你几乎总是想使用 STL。快来Lounge<C++>你一定会开悟。

关于C++ 在头文件中包含 STL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16805766/

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