Boost logo

Boost Users :

Subject: Re: [Boost-users] [type_traits] type_with_alignment<64> on gcc
From: John Maddock (boost.regex_at_[hidden])
Date: 2012-01-04 07:51:34


> Is there any particular reason that type_with_alignment does not support
> alignment more than 32 on gcc?

None except there has to be a limit somewhere. The patch below enables up
to 128-byte alignment, which matches what we do with MSVC. The patch should
be in Trunk shortly as well.

HTH, John.

Index: type_with_alignment.hpp
===================================================================
--- type_with_alignment.hpp (revision 76120)
+++ type_with_alignment.hpp (working copy)
@@ -225,6 +225,8 @@
 struct __attribute__((__aligned__(8))) a8 {};
 struct __attribute__((__aligned__(16))) a16 {};
 struct __attribute__((__aligned__(32))) a32 {};
+struct __attribute__((__aligned__(64))) a64 {};
+struct __attribute__((__aligned__(128))) a128 {};
 }

 template<> class type_with_alignment<1> { public: typedef char type; };
@@ -233,6 +235,8 @@
 template<> class type_with_alignment<8> { public: typedef align::a8
type; };
 template<> class type_with_alignment<16> { public: typedef align::a16
type; };
 template<> class type_with_alignment<32> { public: typedef align::a32
type; };
+template<> class type_with_alignment<64> { public: typedef align::a64
type; };
+template<> class type_with_alignment<128> { public: typedef align::a128
type; };

 namespace detail {
 BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a2,true)
@@ -240,6 +244,8 @@
 BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a8,true)
 BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a16,true)
 BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a32,true)
+BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a64,true)
+BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a128,true)
 }
 #endif
 #if (defined(BOOST_MSVC) || (defined(BOOST_INTEL) && defined(_MSC_VER))) &&
_MSC_VER >= 1300


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