|
Boost Users : |
From: Aaron W. LaFramboise (aaronrabiddog51_at_[hidden])
Date: 2004-07-25 23:07:29
Jeff Garland wrote:
> On Sun, 25 Jul 2004 17:16:38 -0500, Aaron W. LaFramboise wrote
>
>>Hi,
>>
>>As I'm sure you know, long long and unsigned long long are supported
>>by GCC in C++. However, -std=c++98 (not quite sure why, to be
>>honest) and -pedantic cause lots of warnings and errors to be
>>generated in the Boost headers when long long is used. In my
>>project, it is desirable to use these flags for other reasons, but
>>the effect these flags have on the Boost headers is decidedly undesirable.
>>
>>So far, I've been wrapping the Boost headers in forwarding headers that
>>mark the Boost headers as system headers so that they compile without
>>warning or error. Is there any disadvantage to doing this?
>>
>>GCC supports long long even with the above options, but only if
>>__extension__ is used. I notice that there a Boost-standard 64bit
>>type, boost::int64_t. Is there some reason that this can't be typedef'ed
>>using the GCC extension, and then this identifier used in all places
>>where 'long long' is being used? Are there type system rules that
>>prevent this, or some other reason?
>
>
> Is there some particular boost header that is using long long directly?
> date_time uses 64 bit types, but it uses boost::int64_t and its friends to be
> portable. Or are you saying that just using boost:int64_t is causing the problem?
It is the uses of "long long" instead of int64_t that are causing the
problem.
The following patch is a mechanical change that replaces all uses I
could find into int64_t and uint64_t. It also includes boost/cstdint.h
where necessary. However, this only changes headers. It is not
necessary, in my case, to make changes in lib/, because these are only
compiled by Boost.Build; however, it may be desirable to change these
also for some other reason. I'm not sure about this.
Index: boost/boost/cast.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/cast.hpp,v
retrieving revision 1.21
diff -c -r1.21 cast.hpp
*** boost/boost/cast.hpp 26 Feb 2004 18:26:46 -0000 1.21
--- boost/boost/cast.hpp 26 Jul 2004 03:56:12 -0000
***************
*** 157,167 ****
// long / unsigned long long. Not intended to be full
// numeric_limits replacements, but good enough for numeric_cast<>
template <>
! struct fixed_numeric_limits_base<long long, false>
{
BOOST_STATIC_CONSTANT(bool, is_specialized = true);
BOOST_STATIC_CONSTANT(bool, is_signed = true);
! static long long max BOOST_PREVENT_MACRO_SUBSTITUTION ()
{
# ifdef LONGLONG_MAX
return LONGLONG_MAX;
--- 157,167 ----
// long / unsigned long long. Not intended to be full
// numeric_limits replacements, but good enough for numeric_cast<>
template <>
! struct fixed_numeric_limits_base<int64_t, false>
{
BOOST_STATIC_CONSTANT(bool, is_specialized = true);
BOOST_STATIC_CONSTANT(bool, is_signed = true);
! static int64_t max BOOST_PREVENT_MACRO_SUBSTITUTION ()
{
# ifdef LONGLONG_MAX
return LONGLONG_MAX;
***************
*** 170,176 ****
# endif
}
! static long long min BOOST_PREVENT_MACRO_SUBSTITUTION ()
{
# ifdef LONGLONG_MIN
return LONGLONG_MIN;
--- 170,176 ----
# endif
}
! static int64_t min BOOST_PREVENT_MACRO_SUBSTITUTION ()
{
# ifdef LONGLONG_MIN
return LONGLONG_MIN;
***************
*** 181,191 ****
};
template <>
! struct fixed_numeric_limits_base<unsigned long long, false>
{
BOOST_STATIC_CONSTANT(bool, is_specialized = true);
BOOST_STATIC_CONSTANT(bool, is_signed = false);
! static unsigned long long max
BOOST_PREVENT_MACRO_SUBSTITUTION ()
{
# ifdef ULONGLONG_MAX
return ULONGLONG_MAX;
--- 181,191 ----
};
template <>
! struct fixed_numeric_limits_base<uint64_t, false>
{
BOOST_STATIC_CONSTANT(bool, is_specialized = true);
BOOST_STATIC_CONSTANT(bool, is_signed = false);
! static uint64_t max BOOST_PREVENT_MACRO_SUBSTITUTION ()
{
# ifdef ULONGLONG_MAX
return ULONGLONG_MAX;
***************
*** 194,200 ****
# endif
}
! static unsigned long long min
BOOST_PREVENT_MACRO_SUBSTITUTION () { return 0; }
};
# endif
} // namespace detail
--- 194,200 ----
# endif
}
! static uint64_t min BOOST_PREVENT_MACRO_SUBSTITUTION () {
return 0; }
};
# endif
} // namespace detail
Index: boost/boost/concept_check.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/concept_check.hpp,v
retrieving revision 1.27
diff -c -r1.27 concept_check.hpp
*** boost/boost/concept_check.hpp 22 Nov 2003 04:51:00 -0000 1.27
--- boost/boost/concept_check.hpp 26 Jul 2004 03:56:14 -0000
***************
*** 17,22 ****
--- 17,23 ----
#define BOOST_CONCEPT_CHECKS_HPP
#include <boost/config.hpp>
+ #include <boost/cstdint.hpp>
#include <boost/iterator.hpp>
#include <boost/type_traits/conversion_traits.hpp>
#include <utility>
***************
*** 180,186 ****
template <> struct SignedIntegerConcept<int> { void constraints() {} };
template <> struct SignedIntegerConcept<long> { void constraints() {} };
# if defined(BOOST_HAS_LONG_LONG)
! template <> struct SignedIntegerConcept<long long> { void
constraints() {} };
# endif
// etc.
#endif
--- 181,187 ----
template <> struct SignedIntegerConcept<int> { void constraints() {} };
template <> struct SignedIntegerConcept<long> { void constraints() {} };
# if defined(BOOST_HAS_LONG_LONG)
! template <> struct SignedIntegerConcept<int64_t> { void
constraints() {} };
# endif
// etc.
#endif
Index: boost/boost/integer_fwd.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/integer_fwd.hpp,v
retrieving revision 1.2
diff -c -r1.2 integer_fwd.hpp
*** boost/boost/integer_fwd.hpp 27 Dec 2002 16:51:52 -0000 1.2
--- boost/boost/integer_fwd.hpp 26 Jul 2004 03:56:15 -0000
***************
*** 14,21 ****
#include <climits> // for UCHAR_MAX, etc.
#include <cstddef> // for std::size_t
! #include <boost/config.hpp> // for BOOST_NO_INTRINSIC_WCHAR_T
! #include <boost/limits.hpp> // for std::numeric_limits
namespace boost
--- 14,22 ----
#include <climits> // for UCHAR_MAX, etc.
#include <cstddef> // for std::size_t
! #include <boost/cstdint.hpp> // for int64_t
! #include <boost/config.hpp> // for BOOST_NO_INTRINSIC_WCHAR_T
! #include <boost/limits.hpp> // for std::numeric_limits
namespace boost
***************
*** 69,78 ****
#ifdef ULLONG_MAX
template < >
! class integer_traits< long long >;
template < >
! class integer_traits< unsigned long long >;
#endif
--- 70,79 ----
#ifdef ULLONG_MAX
template < >
! class integer_traits< int64_t >;
template < >
! class integer_traits< uint64_t >;
#endif
Index: boost/boost/integer_traits.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/integer_traits.hpp,v
retrieving revision 1.23
diff -c -r1.23 integer_traits.hpp
*** boost/boost/integer_traits.hpp 27 Aug 2003 10:30:53 -0000 1.23
--- boost/boost/integer_traits.hpp 26 Jul 2004 03:56:15 -0000
***************
*** 22,27 ****
--- 22,28 ----
#define BOOST_INTEGER_TRAITS_HPP
#include <boost/config.hpp>
+ #include <boost/cstdint.hpp>
#include <boost/limits.hpp>
// These are an implementation detail and not part of the interface
***************
*** 159,211 ****
#if defined(ULLONG_MAX) && defined(BOOST_HAS_LONG_LONG)
template<>
! class integer_traits<long long>
! : public std::numeric_limits<long long>,
! public detail::integer_traits_base<long long, LLONG_MIN, LLONG_MAX>
{ };
template<>
! class integer_traits<unsigned long long>
! : public std::numeric_limits<unsigned long long>,
! public detail::integer_traits_base<unsigned long long, 0, ULLONG_MAX>
{ };
#elif defined(ULONG_LONG_MAX) && defined(BOOST_HAS_LONG_LONG)
template<>
! class integer_traits<long long> : public std::numeric_limits<long
long>, public detail::integer_traits_base<long long, LONG_LONG_MIN,
LONG_LONG_MAX>{ };
! template<>
! class integer_traits<unsigned long long>
! : public std::numeric_limits<unsigned long long>,
! public detail::integer_traits_base<unsigned long long, 0,
ULONG_LONG_MAX>
{ };
#elif defined(ULONGLONG_MAX) && defined(BOOST_HAS_LONG_LONG)
template<>
! class integer_traits<long long>
! : public std::numeric_limits<long long>,
! public detail::integer_traits_base<long long, LONGLONG_MIN,
LONGLONG_MAX>
{ };
template<>
! class integer_traits<unsigned long long>
! : public std::numeric_limits<unsigned long long>,
! public detail::integer_traits_base<unsigned long long, 0,
ULONGLONG_MAX>
{ };
#elif defined(_LLONG_MAX) && defined(_C2) && defined(BOOST_HAS_LONG_LONG)
template<>
! class integer_traits<long long>
! : public std::numeric_limits<long long>,
! public detail::integer_traits_base<long long, -_LLONG_MAX - _C2,
_LLONG_MAX>
{ };
template<>
! class integer_traits<unsigned long long>
! : public std::numeric_limits<unsigned long long>,
! public detail::integer_traits_base<unsigned long long, 0, _ULLONG_MAX>
{ };
#endif
--- 160,214 ----
#if defined(ULLONG_MAX) && defined(BOOST_HAS_LONG_LONG)
template<>
! class integer_traits<int64_t>
! : public std::numeric_limits<int64_t>,
! public detail::integer_traits_base<int64_t, LLONG_MIN, LLONG_MAX>
{ };
template<>
! class integer_traits<uint64_t>
! : public std::numeric_limits<uint64_t>,
! public detail::integer_traits_base<uint64_t, 0, ULLONG_MAX>
{ };
#elif defined(ULONG_LONG_MAX) && defined(BOOST_HAS_LONG_LONG)
template<>
! class integer_traits<int64_t> : public std::numeric_limits<int64_t>,
! public
! detail::integer_traits_base<int64_t, LONG_LONG_MIN, LONG_LONG_MAX>{ };
! template<>
! class integer_traits<uint64_t>
! : public std::numeric_limits<uint64_t>,
! public detail::integer_traits_base<uint64_t, 0, ULONG_LONG_MAX>
{ };
#elif defined(ULONGLONG_MAX) && defined(BOOST_HAS_LONG_LONG)
template<>
! class integer_traits<int64_t>
! : public std::numeric_limits<int64_t>,
! public detail::integer_traits_base<int64_t, LONGLONG_MIN,
LONGLONG_MAX>
{ };
template<>
! class integer_traits<uint64_t>
! : public std::numeric_limits<uint64_t>,
! public detail::integer_traits_base<uint64_t, 0, ULONGLONG_MAX>
{ };
#elif defined(_LLONG_MAX) && defined(_C2) && defined(BOOST_HAS_LONG_LONG)
template<>
! class integer_traits<int64_t>
! : public std::numeric_limits<int64_t>,
! public detail::integer_traits_base<int64_t, -_LLONG_MAX - _C2,
_LLONG_MAX>
{ };
template<>
! class integer_traits<uint64_t>
! : public std::numeric_limits<uint64_t>,
! public detail::integer_traits_base<uint64_t, 0, _ULLONG_MAX>
{ };
#endif
Index: boost/boost/limits.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/limits.hpp,v
retrieving revision 1.10
diff -c -r1.10 limits.hpp
*** boost/boost/limits.hpp 28 Feb 2004 21:02:02 -0000 1.10
--- boost/boost/limits.hpp 26 Jul 2004 03:56:16 -0000
***************
*** 12,17 ****
--- 12,18 ----
#define BOOST_LIMITS
#include <boost/config.hpp>
+ #include <boost/cstdint.hpp>
#ifdef BOOST_NO_LIMITS
# include <boost/detail/limits.hpp>
***************
*** 25,31 ****
#ifdef BOOST_HAS_MS_INT64
# define BOOST_LLT __int64
#else
! # define BOOST_LLT long long
#endif
namespace std
--- 26,32 ----
#ifdef BOOST_HAS_MS_INT64
# define BOOST_LLT __int64
#else
! # define BOOST_LLT int64_t
#endif
namespace std
Index: boost/boost/iterator/counting_iterator.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/iterator/counting_iterator.hpp,v
retrieving revision 1.4
diff -c -r1.4 counting_iterator.hpp
*** boost/boost/iterator/counting_iterator.hpp 1 Feb 2004 22:11:47 -0000 1.4
--- boost/boost/iterator/counting_iterator.hpp 26 Jul 2004 03:56:18 -0000
***************
*** 6,11 ****
--- 6,12 ----
#ifndef COUNTING_ITERATOR_DWA200348_HPP
# define COUNTING_ITERATOR_DWA200348_HPP
+ # include <boost/cstdint.hpp>
# include <boost/iterator/iterator_adaptor.hpp>
# include <boost/detail/numeric_traits.hpp>
# include <boost/mpl/bool.hpp>
***************
*** 58,68 ****
# if defined(BOOST_HAS_LONG_LONG)
template <>
! struct is_numeric<long long>
: mpl::true_ {};
template <>
! struct is_numeric<unsigned long long>
: mpl::true_ {};
# endif
--- 59,69 ----
# if defined(BOOST_HAS_LONG_LONG)
template <>
! struct is_numeric<int64_t>
: mpl::true_ {};
template <>
! struct is_numeric<uint64_t>
: mpl::true_ {};
# endif
Index: boost/boost/numeric/interval/detail/ppc_rounding_control.hpp
===================================================================
RCS file:
/cvsroot/boost/boost/boost/numeric/interval/detail/ppc_rounding_control.hpp,v
retrieving revision 1.3
diff -c -r1.3 ppc_rounding_control.hpp
*** boost/boost/numeric/interval/detail/ppc_rounding_control.hpp 19 Jul
2004 21:38:06 -0000 1.3
--- boost/boost/numeric/interval/detail/ppc_rounding_control.hpp 26 Jul
2004 03:56:22 -0000
***************
*** 19,31 ****
#error This header only works on PPC CPUs.
#endif
namespace boost {
namespace numeric {
namespace interval_lib {
namespace detail {
typedef union {
! long long int imode;
double dmode;
} rounding_mode_struct;
--- 19,33 ----
#error This header only works on PPC CPUs.
#endif
+ #include <boost/cstdint.hpp>
+
namespace boost {
namespace numeric {
namespace interval_lib {
namespace detail {
typedef union {
! int64_t int imode;
double dmode;
} rounding_mode_struct;
Index: boost/boost/python/type_id.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/python/type_id.hpp,v
retrieving revision 1.14
diff -c -r1.14 type_id.hpp
*** boost/boost/python/type_id.hpp 12 Mar 2004 18:43:08 -0000 1.14
--- boost/boost/python/type_id.hpp 26 Jul 2004 03:56:24 -0000
***************
*** 6,11 ****
--- 6,13 ----
#ifndef TYPE_ID_DWA2002517_HPP
# define TYPE_ID_DWA2002517_HPP
+ # include <boost/cstdint.hpp>
+
# include <boost/python/detail/prefix.hpp>
# include <boost/python/detail/msvc_typeinfo.hpp>
***************
*** 101,107 ****
// using Python's macro instead of Boost's - we don't seem to get the
// config right all the time.
# ifdef HAVE_LONG_LONG
! BOOST_PYTHON_SIGNED_INTEGRAL_TYPE_ID(long long)
# endif
# undef BOOST_PYTHON_SIGNED_INTEGRAL_TYPE_ID
# endif
--- 103,109 ----
// using Python's macro instead of Boost's - we don't seem to get the
// config right all the time.
# ifdef HAVE_LONG_LONG
! BOOST_PYTHON_SIGNED_INTEGRAL_TYPE_ID(int64_t)
# endif
# undef BOOST_PYTHON_SIGNED_INTEGRAL_TYPE_ID
# endif
Index: boost/boost/python/detail/wrap_python.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/python/detail/wrap_python.hpp,v
retrieving revision 1.17
diff -c -r1.17 wrap_python.hpp
*** boost/boost/python/detail/wrap_python.hpp 1 May 2003 05:19:47 -0000 1.17
--- boost/boost/python/detail/wrap_python.hpp 26 Jul 2004 03:56:25 -0000
***************
*** 24,29 ****
--- 24,30 ----
// Python's LongObject.h helpfully #defines ULONGLONG_MAX for us,
// which confuses Boost's config
//
+ #include <boost/cstdint.h>
#include <limits.h>
#ifndef ULONG_MAX
# define BOOST_PYTHON_ULONG_MAX_UNDEFINED
***************
*** 86,92 ****
# endif
# define HAVE_LONG_LONG 1
! # define LONG_LONG long long
# endif
# elif defined(__MWERKS__)
--- 87,93 ----
# endif
# define HAVE_LONG_LONG 1
! # define LONG_LONG int64_t
# endif
# elif defined(__MWERKS__)
Index: boost/boost/spirit/phoenix/operators.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/spirit/phoenix/operators.hpp,v
retrieving revision 1.6
diff -c -r1.6 operators.hpp
*** boost/boost/spirit/phoenix/operators.hpp 9 Jul 2004 08:28:05 -0000 1.6
--- boost/boost/spirit/phoenix/operators.hpp 26 Jul 2004 03:56:32 -0000
***************
*** 23,28 ****
--- 23,29 ----
#include <boost/spirit/phoenix/actor.hpp>
#include <boost/spirit/phoenix/composite.hpp>
#include <boost/config.hpp>
+ #include <boost/cstdint.hpp>
///////////////////////////////////////////////////////////////////////////////
namespace phoenix {
***************
*** 373,380 ****
template <> struct rank<unsigned long> { static int const value =
100; };
#ifdef BOOST_HAS_LONG_LONG
! template <> struct rank<long long> { static int const value =
110; };
! template <> struct rank<unsigned long long> { static int const value =
120; };
#endif
template <> struct rank<float> { static int const value =
130; };
--- 374,381 ----
template <> struct rank<unsigned long> { static int const value =
100; };
#ifdef BOOST_HAS_LONG_LONG
! template <> struct rank<int64_t> { static int const value =
110; };
! template <> struct rank<uint64_t> { static int const value =
120; };
#endif
template <> struct rank<float> { static int const value =
130; };
Index: boost/boost/spirit/utility/chset.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/spirit/utility/chset.hpp,v
retrieving revision 1.6
diff -c -r1.6 chset.hpp
*** boost/boost/spirit/utility/chset.hpp 9 Jul 2004 08:28:06 -0000 1.6
--- boost/boost/spirit/utility/chset.hpp 26 Jul 2004 03:56:32 -0000
***************
*** 11,16 ****
--- 11,17 ----
#define BOOST_SPIRIT_CHSET_HPP
///////////////////////////////////////////////////////////////////////////////
+ #include <boost/cstdint.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/spirit/core/primitives/primitives.hpp>
#include <boost/spirit/utility/impl/chset/basic_chset.hpp>
***************
*** 164,177 ****
#ifdef BOOST_HAS_LONG_LONG
//////////////////////////////////
! inline chset<long long>
! chset_p(long long ch)
! { return chset<long long>(ch); }
//////////////////////////////////
! inline chset<unsigned long long>
! chset_p(unsigned long long ch)
! { return chset<unsigned long long>(ch); }
#endif
///////////////////////////////////////////////////////////////////////////////
--- 165,178 ----
#ifdef BOOST_HAS_LONG_LONG
//////////////////////////////////
! inline chset<int64_t>
! chset_p(int64_t ch)
! { return chset<int64_t>(ch); }
//////////////////////////////////
! inline chset<uint64_t>
! chset_p(uint64_t ch)
! { return chset<uint64_t>(ch); }
#endif
///////////////////////////////////////////////////////////////////////////////
Index: boost/boost/type_traits/is_convertible.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/type_traits/is_convertible.hpp,v
retrieving revision 1.25
diff -c -r1.25 is_convertible.hpp
*** boost/boost/type_traits/is_convertible.hpp 6 Jan 2004 13:37:10
-0000 1.25
--- boost/boost/type_traits/is_convertible.hpp 26 Jul 2004 03:56:33 -0000
***************
*** 12,17 ****
--- 12,18 ----
#ifndef BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED
#define BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED
+ #include "boost/cstdint.hpp"
#include "boost/type_traits/detail/yes_no_type.hpp"
#include "boost/type_traits/config.hpp"
#include "boost/type_traits/is_array.hpp"
***************
*** 260,266 ****
TT_AUX_IS_CONVERTIBLE_SPEC_2(F,short) \
TT_AUX_IS_CONVERTIBLE_SPEC_2(F,int) \
TT_AUX_IS_CONVERTIBLE_SPEC_2(F,long) \
! TT_AUX_IS_CONVERTIBLE_SPEC_2(F,long long) \
/**/
# define TT_AUX_IS_CONVERTIBLE_FROM_FLOAT_CV_SPEC(F) \
--- 261,267 ----
TT_AUX_IS_CONVERTIBLE_SPEC_2(F,short) \
TT_AUX_IS_CONVERTIBLE_SPEC_2(F,int) \
TT_AUX_IS_CONVERTIBLE_SPEC_2(F,long) \
! TT_AUX_IS_CONVERTIBLE_SPEC_2(F,int64_t) \
/**/
# define TT_AUX_IS_CONVERTIBLE_FROM_FLOAT_CV_SPEC(F) \
Index: boost/boost/type_traits/is_integral.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/type_traits/is_integral.hpp,v
retrieving revision 1.8
diff -c -r1.8 is_integral.hpp
*** boost/boost/type_traits/is_integral.hpp 1 May 2004 10:32:58 -0000 1.8
--- boost/boost/type_traits/is_integral.hpp 26 Jul 2004 03:56:34 -0000
***************
*** 10,15 ****
--- 10,16 ----
#define BOOST_TT_IS_INTEGRAL_HPP_INCLUDED
#include "boost/config.hpp"
+ #include "boost/cstdint.hpp"
// should be the last #include
#include "boost/type_traits/detail/bool_trait_def.hpp"
***************
*** 57,64 ****
#endif
# if defined(BOOST_HAS_LONG_LONG)
! BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned long long,true)
! BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,long long,true)
#elif defined(BOOST_HAS_MS_INT64)
BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true)
BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true)
--- 58,65 ----
#endif
# if defined(BOOST_HAS_LONG_LONG)
! BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,uint64_t,true)
! BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,int64_t,true)
#elif defined(BOOST_HAS_MS_INT64)
BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true)
BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true)
Index: boost/boost/type_traits/type_with_alignment.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/type_traits/type_with_alignment.hpp,v
retrieving revision 1.24
diff -c -r1.24 type_with_alignment.hpp
*** boost/boost/type_traits/type_with_alignment.hpp 26 Jan 2004
12:20:03 -0000 1.24
--- boost/boost/type_traits/type_with_alignment.hpp 26 Jul 2004 03:56:34
-0000
***************
*** 8,13 ****
--- 8,14 ----
#ifndef BOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED
#define BOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED
+ #include "boost/cstdint.hpp"
#include "boost/mpl/if.hpp"
#include "boost/preprocessor/list/for_each_i.hpp"
#include "boost/preprocessor/tuple/to_list.hpp"
***************
*** 43,49 ****
#ifdef BOOST_HAS_LONG_LONG
#define BOOST_TT_ALIGNMENT_BASE_TYPES BOOST_PP_TUPLE_TO_LIST( \
12, ( \
! char, short, int, long, long long, float, double, long double \
, void*, function_ptr, member_ptr, member_function_ptr))
#else
#define BOOST_TT_ALIGNMENT_BASE_TYPES BOOST_PP_TUPLE_TO_LIST( \
--- 44,50 ----
#ifdef BOOST_HAS_LONG_LONG
#define BOOST_TT_ALIGNMENT_BASE_TYPES BOOST_PP_TUPLE_TO_LIST( \
12, ( \
! char, short, int, long, int64_t, float, double, long double \
, void*, function_ptr, member_ptr, member_function_ptr))
#else
#define BOOST_TT_ALIGNMENT_BASE_TYPES BOOST_PP_TUPLE_TO_LIST( \
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net