2
0
mirror of https://github.com/boostorg/integer.git synced 2026-01-20 16:42:14 +00:00

Compare commits

...

10 Commits

Author SHA1 Message Date
nobody
aa1d1abf4f This commit was manufactured by cvs2svn to create tag
'Version_1_20_2'.

[SVN r9073]
2001-02-10 14:52:07 +00:00
Beman Dawes
f544a58f58 All final 1.20.2 changes, including fixing broken hyperlinks
[SVN r9071]
2001-02-10 14:42:14 +00:00
Jens Maurer
d2c2e49154 expanded int_least_helper comment on request of Daryle Walker
[SVN r8815]
2001-01-30 21:16:43 +00:00
John Maddock
50bd08d542 cstdint: cygwin fixes for long long support
[SVN r8754]
2001-01-24 12:18:30 +00:00
Jens Maurer
b5b41c73db for int32_t and intmax_t, prefer "long" over "int" if both are 32bit
[SVN r8743]
2001-01-23 19:45:00 +00:00
Dave Abrahams
a22a9a3d80 Fixes so that long long is recognized for GCC.
[SVN r8706]
2001-01-22 05:06:37 +00:00
Jens Maurer
21ee723419 restricted Windows/gcc exclusion of int64_t to Cygwin, because
MingW seems to work


[SVN r8641]
2001-01-18 22:44:28 +00:00
Jens Maurer
202890e032 add typename to definition of (u)int_t::fast
[SVN r8560]
2001-01-12 18:07:34 +00:00
Jens Maurer
4b2fcb5c36 replace using-directive with using-declarations to avoid ambiguity on IRIX CC
[SVN r8557]
2001-01-11 23:00:32 +00:00
Beman Dawes
35dbbde437 1.19.0 runup
[SVN r8446]
2000-12-10 15:53:46 +00:00
5 changed files with 21 additions and 18 deletions

View File

@@ -69,7 +69,7 @@ representing any value of any signed integer type.</p>
capable of representing any value of any unsigned integer type.</p>
<p>These types are required.</p>
<hr>
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan -->12 Nov 2000<!--webbot bot="Timestamp" endspan i-checksum="15060" -->
<p>Revised <!--webbot bot="Timestamp" s-type="EDITED" s-format="%d %b %Y" startspan -->18 Nov 2000<!--webbot bot="Timestamp" endspan i-checksum="15249" -->
</p>
<p>&nbsp;</p>

View File

@@ -9,6 +9,7 @@
// See http://www.boost.org for most recent version including documentation.
// Revision History
// 23 Jan 01 prefer "long" over "int" for int32_t and intmax_t (Jens Maurer)
// 12 Nov 00 Merged <boost/stdint.h> (Jens Maurer)
// 23 Sep 00 Added INTXX_C macro support (John Maddock).
// 22 Sep 00 Better 64-bit support (John Maddock)
@@ -112,29 +113,29 @@ namespace boost
// 32-bit types -----------------------------------------------------------//
# if UINT_MAX == 0xffffffff
typedef int int32_t;
typedef int int_least32_t;
typedef int int_fast32_t;
typedef unsigned int uint32_t;
typedef unsigned int uint_least32_t;
typedef unsigned int uint_fast32_t;
# elif ULONG_MAX == 0xffffffff
# if ULONG_MAX == 0xffffffff
typedef long int32_t;
typedef long int_least32_t;
typedef long int_fast32_t;
typedef unsigned long uint32_t;
typedef unsigned long uint_least32_t;
typedef unsigned long uint_fast32_t;
# elif UINT_MAX == 0xffffffff
typedef int int32_t;
typedef int int_least32_t;
typedef int int_fast32_t;
typedef unsigned int uint32_t;
typedef unsigned int uint_least32_t;
typedef unsigned int uint_fast32_t;
# else
# error defaults not correct; you must hand modify boost/cstdint.hpp
# endif
// 64-bit types + intmax_t and uintmax_t ----------------------------------//
# if (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX)) && !(defined(_WIN32) && defined(__GNUC__))
# if(defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615) || \
(defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615)
# if (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX))
# if(defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615U) || \
(defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615U)
// 2**64 - 1
typedef long long intmax_t;
typedef unsigned long long uintmax_t;
@@ -252,7 +253,7 @@ Added 23rd September (John Maddock).
// 64-bit types + intmax_t and uintmax_t ----------------------------------//
# if (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX)) && !(defined(_WIN32) && defined(__GNUC__))
# if (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX))
# if(defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615) || \
(defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615)
# define INT64_C(value) value##LL
@@ -297,3 +298,4 @@ Added 23rd September (John Maddock).
# undef UINTMAX_C
#endif // __STDC_CONSTANT_MACROS_DEFINED etc.

View File

@@ -31,6 +31,7 @@ namespace boost
// specializatons: 1=long, 2=int, 3=short, 4=signed char,
// 6=unsigned long, 7=unsigned int, 8=unsigned short, 9=unsigned long
// no specializations for 0 and 5: requests for a type > long are in error
template<> struct int_least_helper<1> { typedef long least; };
template<> struct int_least_helper<2> { typedef int least; };
template<> struct int_least_helper<3> { typedef short least; };
@@ -53,7 +54,7 @@ namespace boost
(Bits-1 <= std::numeric_limits<short>::digits) +
(Bits-1 <= std::numeric_limits<signed char>::digits)
>::least least;
typedef int_fast_t<least>::fast fast;
typedef typename int_fast_t<least>::fast fast;
};
// unsigned
@@ -68,7 +69,7 @@ namespace boost
(Bits <= std::numeric_limits<unsigned short>::digits) +
(Bits <= std::numeric_limits<unsigned char>::digits)
>::least least;
typedef int_fast_t<least>::fast fast;
typedef typename int_fast_t<least>::fast fast;
};
// The same dispatching technique can be used to select types based on

View File

@@ -90,7 +90,7 @@ instead.
<hr>
<p>Revised: <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %b %Y" startspan -->12 Nov 2000<!--webbot bot="Timestamp" endspan i-checksum="15233" -->
<p>Revised: <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %b %Y" startspan -->18 Nov 2000<!--webbot bot="Timestamp" endspan i-checksum="15249" -->
</p>
</body>

View File

@@ -17,8 +17,6 @@
#include <iostream>
#include <boost/integer.hpp>
using namespace boost; // not the best practice, but useful for testing
namespace
{
void test( long ) { std::cout << "long\n"; }
@@ -39,6 +37,8 @@ namespace boost
int main()
{
using boost::int_t;
using boost::uint_t;
std::cout << 32 << ' '; test( int_t<32>::least() );
std::cout << 31 << ' '; test( int_t<31>::least() );
std::cout << 30 << ' '; test( int_t<30>::least() );