Fix compilation error for MSVC 10 x86 in aligned_union

This commit is contained in:
Ion Gaztañaga
2020-11-03 09:40:01 +01:00
parent 3446ceeaaf
commit 6d0bcff38a

View File

@@ -1060,8 +1060,9 @@ BOOST_MOVE_ALIGNED_STRUCT(4096);
template<std::size_t Len, std::size_t Align> template<std::size_t Len, std::size_t Align>
union aligned_union union aligned_union
{ {
aligned_struct<Align> aligner; typedef aligned_struct<Align> aligner_t;
unsigned char data[Len]; aligner_t aligner;
unsigned char data[Len > sizeof(aligner_t) ? Len : sizeof(aligner_t)];
}; };
template<std::size_t Len, std::size_t Align> template<std::size_t Len, std::size_t Align>
@@ -1106,7 +1107,7 @@ template<std::size_t Len, std::size_t Align>
union aligned_struct_wrapper union aligned_struct_wrapper
{ {
aligned_struct<Len, Align> aligner; aligned_struct<Len, Align> aligner;
unsigned char data[sizeof(aligned_struct<Len, Align>)]; unsigned char data[Len > sizeof(aligner) ? Len : sizeof(aligner)];
}; };
template<std::size_t Len, std::size_t Align> template<std::size_t Len, std::size_t Align>
@@ -1121,7 +1122,7 @@ template<class T, std::size_t Len>
union aligned_union union aligned_union
{ {
T aligner; T aligner;
unsigned char data[Len]; unsigned char data[Len > sizeof(aligner) ? Len : sizeof(aligner)];
}; };
template<std::size_t Len, std::size_t Align, class T, bool Ok> template<std::size_t Len, std::size_t Align, class T, bool Ok>