boost.png (6897 bytes) Home Libraries People FAQ More

Boost Integer 庫

頭文件 / 文檔 內容 使用
<boost/integer_fwd.hpp> 類與類模板的前向聲明 在只需要類名時使用
<boost/cstdint.hpp>

文檔
基於 1999 C 標準頭文件 <stdint.h> 的typedef, 包裝在名字空間 boost 中。可能 #include 編譯器提供的 <stdint.h>, 如果有的話。 為標準的整數類型如 int32_tuint_least16_t 提供 typedef. 為加強可移植性,應優先於 <stdint.h> 使用。此外,所有名字被置於 boost 名字空間,更為安全。
<boost/integer_traits.hpp>

文檔
模板類 boost::integer_traits, 派生自 std::numeric_limits. 增加了 const_minconst_max 成員。 用於獲得已知整數類型的特性。
<boost/integer.hpp>

文檔
基於最大值或位數等特性來選擇整數類型的模板。 用於在知道某些特性如最大值或位數時,選擇某個整數類型。對於泛型編程非常有用。
<boost/integer/integer_mask.hpp>

文檔
基於位數選擇整數的單個或最低位元組 mask 的模板。 用於在位元位置由編譯期變量確定的情況下,選擇特定的 mask. 對於泛型編程非常有用。
<boost/integer/static_log2.hpp>

文檔
用於在某個數字之內查找最大的2的整數冪的模板。 基於某個最大值查找位元數/範圍。對於泛型編程非常有用。
<boost/integer/static_min_max.hpp>

文檔
用於查找兩個數字的最大最小值。 用於查找最小或最大值。對於泛型編程非常有用。

原理

boost integer 頭文件和類的組織結構在設計上利用了來自 1999 C 標準的 <stdint.h> 類型,而沒有採用 1998 C++ 標準的未定義行為。頭文件 <boost/cstdint.hpp> 使得標準的整數類型安全地位於名字空間 boost 中,沒有往名字空間 std 中增加任何東西。目的是要對C++標準庫作出補充,而不是與之競爭。如果將來的C++標準包含了 <stdint.h><cstdint>, 則 <boost/cstdint.hpp> 仍可使用,不過那時就是多餘的了,可以被安全地去掉。

由於這些是 boost 頭文件,所以它們的名字遵照 boost 頭文件命名規則,而不是 C++ 標準庫頭文件的命名規則。

需要小心的

由於實現的原因,某些 C <limits.h> 宏名字可能會被 <boost/cstdint.hpp> 的用戶看到。不要使用這些宏;它們不屬於 Boost-規範接口中的部分。請使用 boost::integer_traits<>std::numeric_limits<> 代替。

由於實現的原因,某些 C <stdint.h> typedef 名字可能會被 <boost/cstdint.hpp> 的用戶在全局名字空間中看到。不要使用這些名字,它們不屬於 Boost-規範接口中的部分。請使用名字空間 boost 中的相應名字代替。


Revised: 06 Nov 2007

?Copyright Beman Dawes 2003

Distributed under the Boost Software License, Version 1.0. See www.boost.org/LICENSE_1_0.txt