Opened 15 years ago
Closed 15 years ago
#1314 closed Bugs (fixed)
Using SSE-intrinsics in VC8 causes static assert in type_with_alignment.hpp
| Reported by: | Owned by: | John Maddock | |
|---|---|---|---|
| Milestone: | Boost 1.36.0 | Component: | type_traits | 
| Version: | Boost 1.34.1 | Severity: | Problem | 
| Keywords: | Cc: | 
Description
When I create a class containing the SSE-intrinsic m128 in VC8 and try to serialize it with the boost serialization library the following static assert in type_with_alignment is triggered:
BOOST_STATIC_ASSERT(found % Align == 0);
Align is in my case 8 and the SSE-intrinsics are aligned to 16. Including m128 in BOOST_TT_ALIGNMENT_BASE_TYPES fixes the problem:
#define BOOST_TT_ALIGNMENT_BASE_TYPES BOOST_PP_TUPLE_TO_LIST( \
        13, ( \
        char, short, int, long,  ::boost::long_long_type, float, double, long double \
        , void*, function_ptr, member_ptr, member_function_ptr, __m128))
I guess that many other compilers have their own SSE-intrinsics defined so a more generic solution would of course be desirable.
Change History (3)
comment:1 by , 15 years ago
comment:2 by , 15 years ago
| Milestone: | To Be Determined → Boost 1.36.0 | 
|---|---|
| Status: | new → assigned | 
comment:3 by , 15 years ago
| Resolution: | → fixed | 
|---|---|
| Status: | assigned → closed | 
I believe this should be fixed in SVN Trunk now with revision #43952.
Regards, John.
  Note:
 See   TracTickets
 for help on using tickets.
    
As mentioned on the list, I won't destabilise the 1.35 release by fixing this yet, but I will for 1.36 if possible.
John Maddock.