Compare commits

..

1 Commits

Author SHA1 Message Date
7d9cf81cce Branch for working on the documentation tools documentation.
[SVN r68640]
2011-02-04 21:18:24 +00:00
12 changed files with 108 additions and 204 deletions

View File

@ -50,7 +50,6 @@ boostbook standalone
<format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/regex/doc/html <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/regex/doc/html
; ;
install pdfinstall : standalone/<format>pdf : <location>. <install-type>PDF ; install pdf-install : standalone : <location>. <install-type>PDF ;
explicit pdfinstall ;

View File

@ -41,10 +41,7 @@
// so we disable use of stdint.h when GLIBC does not define __GLIBC_HAVE_LONG_LONG. // so we disable use of stdint.h when GLIBC does not define __GLIBC_HAVE_LONG_LONG.
// See https://svn.boost.org/trac/boost/ticket/3548 and http://sources.redhat.com/bugzilla/show_bug.cgi?id=10990 // See https://svn.boost.org/trac/boost/ticket/3548 and http://sources.redhat.com/bugzilla/show_bug.cgi?id=10990
// //
#if defined(BOOST_HAS_STDINT_H) \ #if defined(BOOST_HAS_STDINT_H) && (!defined(__GLIBC__) || defined(__GLIBC_HAVE_LONG_LONG))
&& (!defined(__GLIBC__) \
|| defined(__GLIBC_HAVE_LONG_LONG) \
|| (defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 17)))))
// The following #include is an implementation artifact; not part of interface. // The following #include is an implementation artifact; not part of interface.
# ifdef __hpux # ifdef __hpux
@ -361,40 +358,6 @@ namespace boost
#endif // BOOST_HAS_STDINT_H #endif // BOOST_HAS_STDINT_H
// intptr_t/uintptr_t are defined separately because they are optional and not universally available
#if defined(BOOST_WINDOWS) && !defined(_WIN32_WCE) && !defined(BOOST_HAS_STDINT_H)
// Older MSVC don't have stdint.h and have intptr_t/uintptr_t defined in stddef.h
#include <stddef.h>
#endif
// PGI seems to not support intptr_t/uintptr_t properly. BOOST_HAS_STDINT_H is not defined for this compiler by Boost.Config.
#if !defined(__PGIC__)
#if (defined(BOOST_WINDOWS) && !defined(_WIN32_WCE)) \
|| (defined(_XOPEN_UNIX) && (_XOPEN_UNIX+0 > 0) && !defined(__UCLIBC__)) \
|| defined(__CYGWIN__) \
|| defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) \
|| defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
namespace boost {
using ::intptr_t;
using ::uintptr_t;
}
#define BOOST_HAS_INTPTR_T
// Clang pretends to be GCC, so it'll match this condition
#elif defined(__GNUC__) && defined(__INTPTR_TYPE__) && defined(__UINTPTR_TYPE__)
namespace boost {
typedef __INTPTR_TYPE__ intptr_t;
typedef __UINTPTR_TYPE__ uintptr_t;
}
#define BOOST_HAS_INTPTR_T
#endif
#endif // !defined(__PGIC__)
#endif // BOOST_CSTDINT_HPP #endif // BOOST_CSTDINT_HPP

View File

@ -20,7 +20,6 @@
#include <boost/integer_traits.hpp> // for boost::::boost::integer_traits #include <boost/integer_traits.hpp> // for boost::::boost::integer_traits
#include <boost/limits.hpp> // for ::std::numeric_limits #include <boost/limits.hpp> // for ::std::numeric_limits
#include <boost/cstdint.hpp> // for boost::int64_t and BOOST_NO_INTEGRAL_INT64_T #include <boost/cstdint.hpp> // for boost::int64_t and BOOST_NO_INTEGRAL_INT64_T
#include <boost/static_assert.hpp>
// //
// We simply cannot include this header on gcc without getting copious warnings of the kind: // We simply cannot include this header on gcc without getting copious warnings of the kind:
@ -52,7 +51,6 @@ namespace boost
// convert category to type // convert category to type
template< int Category > struct int_least_helper {}; // default is empty template< int Category > struct int_least_helper {}; // default is empty
template< int Category > struct uint_least_helper {}; // default is empty
// specializatons: 1=long, 2=int, 3=short, 4=signed char, // specializatons: 1=long, 2=int, 3=short, 4=signed char,
// 6=unsigned long, 7=unsigned int, 8=unsigned short, 9=unsigned char // 6=unsigned long, 7=unsigned int, 8=unsigned short, 9=unsigned char
@ -67,14 +65,14 @@ namespace boost
template<> struct int_least_helper<4> { typedef short least; }; template<> struct int_least_helper<4> { typedef short least; };
template<> struct int_least_helper<5> { typedef signed char least; }; template<> struct int_least_helper<5> { typedef signed char least; };
#ifdef BOOST_HAS_LONG_LONG #ifdef BOOST_HAS_LONG_LONG
template<> struct uint_least_helper<1> { typedef boost::ulong_long_type least; }; template<> struct int_least_helper<6> { typedef boost::ulong_long_type least; };
#elif defined(BOOST_HAS_MS_INT64) #elif defined(BOOST_HAS_MS_INT64)
template<> struct uint_least_helper<1> { typedef unsigned __int64 least; }; template<> struct int_least_helper<6> { typedef unsigned __int64 least; };
#endif #endif
template<> struct uint_least_helper<2> { typedef unsigned long least; }; template<> struct int_least_helper<7> { typedef unsigned long least; };
template<> struct uint_least_helper<3> { typedef unsigned int least; }; template<> struct int_least_helper<8> { typedef unsigned int least; };
template<> struct uint_least_helper<4> { typedef unsigned short least; }; template<> struct int_least_helper<9> { typedef unsigned short least; };
template<> struct uint_least_helper<5> { typedef unsigned char least; }; template<> struct int_least_helper<10> { typedef unsigned char least; };
template <int Bits> template <int Bits>
struct exact_signed_base_helper{}; struct exact_signed_base_helper{};
@ -113,12 +111,10 @@ namespace boost
template< int Bits > // bits (including sign) required template< int Bits > // bits (including sign) required
struct int_t : public detail::exact_signed_base_helper<Bits> struct int_t : public detail::exact_signed_base_helper<Bits>
{ {
BOOST_STATIC_ASSERT_MSG(Bits <= (int)(sizeof(boost::intmax_t) * CHAR_BIT),
"No suitable signed integer type with the requested number of bits is available.");
typedef typename detail::int_least_helper typedef typename detail::int_least_helper
< <
#ifdef BOOST_HAS_LONG_LONG #ifdef BOOST_HAS_LONG_LONG
(Bits <= (int)(sizeof(boost::long_long_type) * CHAR_BIT)) + (Bits-1 <= (int)(sizeof(boost::long_long_type) * CHAR_BIT)) +
#else #else
1 + 1 +
#endif #endif
@ -134,8 +130,6 @@ namespace boost
template< int Bits > // bits required template< int Bits > // bits required
struct uint_t : public detail::exact_unsigned_base_helper<Bits> struct uint_t : public detail::exact_unsigned_base_helper<Bits>
{ {
BOOST_STATIC_ASSERT_MSG(Bits <= (int)(sizeof(boost::uintmax_t) * CHAR_BIT),
"No suitable unsigned integer type with the requested number of bits is available.");
#if (defined(__BORLANDC__) || defined(__CODEGEAR__)) && defined(BOOST_NO_INTEGRAL_INT64_T) #if (defined(__BORLANDC__) || defined(__CODEGEAR__)) && defined(BOOST_NO_INTEGRAL_INT64_T)
// It's really not clear why this workaround should be needed... shrug I guess! JM // It's really not clear why this workaround should be needed... shrug I guess! JM
BOOST_STATIC_CONSTANT(int, s = BOOST_STATIC_CONSTANT(int, s =
@ -146,10 +140,11 @@ namespace boost
(Bits <= ::std::numeric_limits<unsigned char>::digits)); (Bits <= ::std::numeric_limits<unsigned char>::digits));
typedef typename detail::int_least_helper< ::boost::uint_t<Bits>::s>::least least; typedef typename detail::int_least_helper< ::boost::uint_t<Bits>::s>::least least;
#else #else
typedef typename detail::uint_least_helper typedef typename detail::int_least_helper
< <
5 +
#ifdef BOOST_HAS_LONG_LONG #ifdef BOOST_HAS_LONG_LONG
(Bits <= (int)(sizeof(boost::long_long_type) * CHAR_BIT)) + (Bits-1 <= (int)(sizeof(boost::long_long_type) * CHAR_BIT)) +
#else #else
1 + 1 +
#endif #endif
@ -222,7 +217,7 @@ namespace boost
// It's really not clear why this workaround should be needed... shrug I guess! JM // It's really not clear why this workaround should be needed... shrug I guess! JM
#if defined(BOOST_NO_INTEGRAL_INT64_T) #if defined(BOOST_NO_INTEGRAL_INT64_T)
BOOST_STATIC_CONSTANT(unsigned, which = BOOST_STATIC_CONSTANT(unsigned, which =
1 + 6 +
(MaxValue <= ::boost::integer_traits<unsigned long>::const_max) + (MaxValue <= ::boost::integer_traits<unsigned long>::const_max) +
(MaxValue <= ::boost::integer_traits<unsigned int>::const_max) + (MaxValue <= ::boost::integer_traits<unsigned int>::const_max) +
(MaxValue <= ::boost::integer_traits<unsigned short>::const_max) + (MaxValue <= ::boost::integer_traits<unsigned short>::const_max) +
@ -230,17 +225,18 @@ namespace boost
typedef typename detail::int_least_helper< ::boost::uint_value_t<MaxValue>::which>::least least; typedef typename detail::int_least_helper< ::boost::uint_value_t<MaxValue>::which>::least least;
#else // BOOST_NO_INTEGRAL_INT64_T #else // BOOST_NO_INTEGRAL_INT64_T
BOOST_STATIC_CONSTANT(unsigned, which = BOOST_STATIC_CONSTANT(unsigned, which =
1 + 5 +
(MaxValue <= ::boost::integer_traits<boost::ulong_long_type>::const_max) + (MaxValue <= ::boost::integer_traits<boost::ulong_long_type>::const_max) +
(MaxValue <= ::boost::integer_traits<unsigned long>::const_max) + (MaxValue <= ::boost::integer_traits<unsigned long>::const_max) +
(MaxValue <= ::boost::integer_traits<unsigned int>::const_max) + (MaxValue <= ::boost::integer_traits<unsigned int>::const_max) +
(MaxValue <= ::boost::integer_traits<unsigned short>::const_max) + (MaxValue <= ::boost::integer_traits<unsigned short>::const_max) +
(MaxValue <= ::boost::integer_traits<unsigned char>::const_max)); (MaxValue <= ::boost::integer_traits<unsigned char>::const_max));
typedef typename detail::uint_least_helper< ::boost::uint_value_t<MaxValue>::which>::least least; typedef typename detail::int_least_helper< ::boost::uint_value_t<MaxValue>::which>::least least;
#endif // BOOST_NO_INTEGRAL_INT64_T #endif // BOOST_NO_INTEGRAL_INT64_T
#else #else
typedef typename detail::uint_least_helper typedef typename detail::int_least_helper
< <
5 +
#if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG) #if !defined(BOOST_NO_INTEGRAL_INT64_T) && defined(BOOST_HAS_LONG_LONG)
(MaxValue <= ::boost::integer_traits<boost::ulong_long_type>::const_max) + (MaxValue <= ::boost::integer_traits<boost::ulong_long_type>::const_max) +
#else #else

View File

@ -227,7 +227,7 @@ class integer_traits< ::boost::ulong_long_type>
template<> template<>
class integer_traits< ::boost::long_long_type> class integer_traits< ::boost::long_long_type>
: public std::numeric_limits< ::boost::long_long_type>, : public std::numeric_limits< ::boost::long_long_type>,
public detail::integer_traits_base< ::boost::long_long_type, (1LL << (sizeof(::boost::long_long_type) * CHAR_BIT - 1)), ~(1LL << (sizeof(::boost::long_long_type) * CHAR_BIT - 1))> public detail::integer_traits_base< ::boost::long_long_type, (1LL << (sizeof(::boost::long_long_type) - 1)), ~(1LL << (sizeof(::boost::long_long_type) - 1))>
{ }; { };
template<> template<>

View File

@ -22,10 +22,4 @@ test-suite integer
[ compile static_log2_include_test.cpp ] [ compile static_log2_include_test.cpp ]
[ compile static_min_max_include_test.cpp ] [ compile static_min_max_include_test.cpp ]
[ compile integer_fwd_include_test.cpp ] [ compile integer_fwd_include_test.cpp ]
[ compile-fail fail_int_exact.cpp ]
[ compile-fail fail_int_fast.cpp ]
[ compile-fail fail_int_least.cpp ]
[ compile-fail fail_uint_exact.cpp ]
[ compile-fail fail_uint_fast.cpp ]
[ compile-fail fail_uint_least.cpp ]
; ;

View File

@ -1,8 +0,0 @@
// Copyright John Maddock 2012.
// Distributed under the Boost
// Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#include <boost/integer.hpp>
typedef boost::int_t<sizeof(boost::intmax_t)*CHAR_BIT + 1>::exact fail_int_exact;

View File

@ -1,8 +0,0 @@
// Copyright John Maddock 2012.
// Distributed under the Boost
// Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#include <boost/integer.hpp>
typedef boost::int_t<sizeof(boost::intmax_t)*CHAR_BIT + 1>::fast fail_int_fast;

View File

@ -1,8 +0,0 @@
// Copyright John Maddock 2012.
// Distributed under the Boost
// Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#include <boost/integer.hpp>
typedef boost::int_t<sizeof(boost::intmax_t)*CHAR_BIT + 1>::least fail_int_least;

View File

@ -1,8 +0,0 @@
// Copyright John Maddock 2012.
// Distributed under the Boost
// Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#include <boost/integer.hpp>
typedef boost::uint_t<sizeof(boost::intmax_t)*CHAR_BIT + 1>::exact fail_uint_exact;

View File

@ -1,8 +0,0 @@
// Copyright John Maddock 2012.
// Distributed under the Boost
// Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#include <boost/integer.hpp>
typedef boost::uint_t<sizeof(boost::intmax_t)*CHAR_BIT + 1>::fast fail_uint_fast;

View File

@ -1,8 +0,0 @@
// Copyright John Maddock 2012.
// Distributed under the Boost
// Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#include <boost/integer.hpp>
typedef boost::uint_t<sizeof(boost::intmax_t)*CHAR_BIT + 1>::least fail_uint_least;

View File

@ -152,7 +152,7 @@ void do_test_bits()
if(boost::detail::test_errors() != last_error_count) if(boost::detail::test_errors() != last_error_count)
{ {
last_error_count = boost::detail::test_errors(); last_error_count = boost::detail::test_errors();
std::cout << "Errors occurred while testing with bit count = " << Bits << std::endl; std::cout << "Errors occured while testing with bit count = " << Bits << std::endl;
std::cout << "Type int_t<" << Bits << ">::least was " << get_name_of_type(least_int(0)) << std::endl; std::cout << "Type int_t<" << Bits << ">::least was " << get_name_of_type(least_int(0)) << std::endl;
std::cout << "Type int_t<" << Bits << ">::fast was " << get_name_of_type(fast_int(0)) << std::endl; std::cout << "Type int_t<" << Bits << ">::fast was " << get_name_of_type(fast_int(0)) << std::endl;
std::cout << "Type uint_t<" << Bits << ">::least was " << get_name_of_type(least_uint(0)) << std::endl; std::cout << "Type uint_t<" << Bits << ">::least was " << get_name_of_type(least_uint(0)) << std::endl;