C++ 包括STL而不乱丢垃圾全球范围
有没有一种方法可以包括STL,而不必在全局范围内定义诸如C++ 包括STL而不乱丢垃圾全球范围,c++,visual-c++,msvcrt,C++,Visual C++,Msvcrt,有没有一种方法可以包括STL,而不必在全局范围内定义诸如::size\u t?像\u security\u init\u cookie这样的实现项目对我来说很好,因为它们的标识符是保留的 vcruntime.h总是包含在内,这让我很困扰。我认为这样做根本不安全 在全球空间中有东西需要向后兼容。如果你改变这些全局事物的特征,就会出现链接时间问题。 方法是将全局空间留给语言和库实现,并将您的东西放入名称空间 如果使用fork STL,则必须维护每个版本并与之同步 而且vcruntime.h不是来自S
::size\u t
?像\u security\u init\u cookie
这样的实现项目对我来说很好,因为它们的标识符是保留的
vcruntime.h
总是包含在内,这让我很困扰。我认为这样做根本不安全
在全球空间中有东西需要向后兼容。如果你改变这些全局事物的特征,就会出现链接时间问题。
方法是将全局空间留给语言和库实现,并将您的东西放入名称空间
如果使用fork STL,则必须维护每个版本并与之同步
而且vcruntime.h
不是来自STL,而是与Windows相关的东西
您可以使用std::size\t
但是:
#include <cstddef>
std::size_t i = 0;
#包括
标准:尺寸i=0;
但是
::大小\u t
无论如何都会在那里。你能再详细一点吗?您是否试图避免在任何地方使用std::
?FWIW,IMHO,避免多输入5个字符是不值得的。@NathanOliver相反。我想在任何地方都使用std::
。哦,所以你想去掉标题可能放在全局空间中的名称。我不确定你能做什么,我希望有人知道一个神奇的宏,我可以定义它,将实现细节严格保留在实现中,最终用户无法访问。我想没有这样的宏。但您可以查看包含的头的源代码以确保安全。