是否有可能,至少在理论上,cstdint typedefs 绑定到某些特定于实现的类型 std::numeric_limits 不是专门针对的?
根据http://www.cplusplus.com/reference/limits/numeric_limits,让我引用一下,“ [std::numeric_limits] 专门用于每种基本算术类型,其成员描述类型 T 的属性。此模板不应专门用于任何其他类型。 ”
根据http://en.cppreference.com/w/cpp/types/numeric_limits,让我再次引用,“实现可以为特定于实现的类型提供 std::numeric_limits 的特化”。
“五月”,cppreference 说。所以他们不必这样做。
最后,根据http://www.cplusplus.com/reference/cstdint,标题中定义的 typedef 是“基本整数类型或扩展整数类型的 typedef ”。
因此,总而言之 - 似乎 cstdint typedefs 可能绑定到扩展整数类型(无论它们是什么),它们不是基本的整数类型(同样,无论它们是什么),因此可能与 std::numeric_limits 不兼容。这个对吗?
但是,我链接到的文档在某一点上似乎略有不一致。cplusplus.com 是否禁止 std::numeric_limits 不得专门用于任何非基本算术类型,以反对 cppreference 允许 std::numeric_limits 可能专门用于特定于实现的类型?当然,除非这些特定于实现的类型实际上是 基本的整数类型,在这种情况下,希望 std::numeric_limits 必须专门用于所有 cstdint typedef。
这些文件让我感到困惑。所以我在这里问我的问题:)
编辑。
根据http://eel.is/c++draft/cstdint, cstdint 必须绑定到整数类型。并且根据http://eel.is/c++draft/limits.numeric,“应为每种算术类型提供专门化,包括浮点数和整数,包括 bool ”。整数类型是算术类型,因此 std::numeric_limits 必须专门用于 cstdint typedefs 的理解是否正确?