似乎在 XCode 上我需要在 Visual C++ 上使用 std::size_t 而不仅仅是 size_t 。但这很痛苦,因为我真的不想在我的代码中使用 #include <cstddef>
并将每个 size_t
更改为 std::size_t
......在我的 Windows 代码中 size_t
只是在不包含任何其他文件的情况下工作。
有没有办法让我现有的代码在 XCode 中工作(也许通过 .pch 文件?)或者 GCC/MSVC++ 在这方面根本不同,我的代码需要使用 std::size_t
才能跨平台?
最佳答案
根据 C++03 标准,17.4.1.2.4:
换句话说,通过选择使用 <cstddef>
而不是 <stddef.h>
,您特别要求类型 size_t 位于命名空间 std 内。
所以,这里是选择:
<stddef.h>
,因此 size_t
位于顶级命名空间中,正如 Jesse Good 所建议的那样。 <cstddef>
并使用 std::size_t
。 <cstddef>
并使用 using 声明将 size_t
拉入顶级命名空间。 当然,您可以依赖这样一个事实:一个编译器/库/平台的一个特定版本可以让您摆脱它,或者为每个平台编写不同的代码,或者用 autoconf 包装整个事情,或者编写代码生成器或 sed -基于预处理器,或其他什么......但为什么呢?
关于c++ - XCode 上的 size_t,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10823878/