[Boost-bugs] [Boost C++ Libraries] #5271: is_convertible with 16-byte aligned types causes errors on MSVC

Subject: [Boost-bugs] [Boost C++ Libraries] #5271: is_convertible with 16-byte aligned types causes errors on MSVC
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-03-07 00:34:57


#5271: is_convertible with 16-byte aligned types causes errors on MSVC
-------------------------------------------+--------------------------------
 Reporter: mgaunard | Owner: johnmaddock
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: type_traits
  Version: Boost Development Trunk | Severity: Problem
 Keywords: is_convertible msvc alignment |
-------------------------------------------+--------------------------------
 This appears to be caused by passing those types by value to functions, as
 is done by "...".
 MSVC doesn't allow types with alignment higher than that of the stack to
 be passed by value to functions.

 The fix would involve forcing everything to be references somehow.

 Testcase:
 {{{
 #include <boost/type_traits/is_convertible.hpp>

 struct A
 {
     __declspec(align(16)) int value;
 };

 struct B
 {
 };

 typedef boost::is_convertible<A, B>::type C;
 }}}

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/5271>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:05 UTC