@@ -404,7 +404,7 @@ class LayoutImpl<std::tuple<Elements...>, absl::index_sequence<SizeSeq...>,
404404 constexpr size_t Offset () const {
405405 static_assert (N < NumOffsets, " Index out of bounds" );
406406 return adl_barrier::Align (
407- Offset<N - 1 >() + SizeOf<ElementType<N - 1 >>() * size_[N - 1 ],
407+ Offset<N - 1 >() + SizeOf<ElementType<N - 1 >>::value * size_[N - 1 ],
408408 ElementAlignment<N>::value);
409409 }
410410
@@ -597,7 +597,7 @@ class LayoutImpl<std::tuple<Elements...>, absl::index_sequence<SizeSeq...>,
597597 constexpr size_t AllocSize () const {
598598 static_assert (NumTypes == NumSizes, " You must specify sizes of all fields" );
599599 return Offset<NumTypes - 1 >() +
600- SizeOf<ElementType<NumTypes - 1 >>() * size_[NumTypes - 1 ];
600+ SizeOf<ElementType<NumTypes - 1 >>::value * size_[NumTypes - 1 ];
601601 }
602602
603603 // If built with --config=asan, poisons padding bytes (if any) in the
@@ -621,7 +621,7 @@ class LayoutImpl<std::tuple<Elements...>, absl::index_sequence<SizeSeq...>,
621621 // The `if` is an optimization. It doesn't affect the observable behaviour.
622622 if (ElementAlignment<N - 1 >::value % ElementAlignment<N>::value) {
623623 size_t start =
624- Offset<N - 1 >() + SizeOf<ElementType<N - 1 >>() * size_[N - 1 ];
624+ Offset<N - 1 >() + SizeOf<ElementType<N - 1 >>::value * size_[N - 1 ];
625625 ASAN_POISON_MEMORY_REGION (p + start, Offset<N>() - start);
626626 }
627627#endif
@@ -645,7 +645,7 @@ class LayoutImpl<std::tuple<Elements...>, absl::index_sequence<SizeSeq...>,
645645 // produce "unsigned*" where another produces "unsigned int *".
646646 std::string DebugString () const {
647647 const auto offsets = Offsets ();
648- const size_t sizes[] = {SizeOf<ElementType<OffsetSeq>>() ...};
648+ const size_t sizes[] = {SizeOf<ElementType<OffsetSeq>>::value ...};
649649 const std::string types[] = {
650650 adl_barrier::TypeName<ElementType<OffsetSeq>>()...};
651651 std::string res = absl::StrCat (" @0" , types[0 ], " (" , sizes[0 ], " )" );
0 commit comments