由于至少C++11我们可爱的固定宽整数,例如在C++'s <cstdint>
或C的 <stdint.h>
开箱(例如 std::uint32_t
, std::int8_t
),所以有或没有的 std::
在他们面前,甚至作为宏最小宽度(INT16_C
, UINT32_C
等等)。
然而,我们必须做处理与图书馆的每一天,确定自己的固定宽整数和你可能已经看到为例 sf::Int32
, quint32
, boost::uint32_t
, Ogre::uint32
, ImS32
我可以继续下去如果你想要我。 你也知道,一对夫妇更可能。
有时,这些类型定义(也常常宏定义)可能导致冲突,例如当你想通过一个 std
固定宽整数的一个函数从图书馆预期的固定宽整数完全相同的宽度,但定义方式不同。
点的固定宽整数是它们具有固定的尺寸,而这正是我们需要在许多情况下,你知道。 那么,为什么所有的这些图书馆去和typedef完全相同的整数,我们已经在C++标准? 这些额外的限定,有时令人困惑、冗余和可能入侵你的代码,这是非常不好的事情。 如果他们没有宽度和符号规范他们的承诺,他们至少罪原则的少惊讶,那么他们的观点,我在此请求你?