id summary reporter owner description type status milestone component version severity resolution keywords cc 11312 smart_ptr::detail::as_allocator::allocate() adds alignment padding when it's not needed David Aue Glen Fernandes "smart_ptr::detail::as_allocator::allocate() { enum { M = boost::alignment_of::value }; std::size_t n1 = count * sizeof(value_type); std::size_t n2 = data.size * sizeof(type); std::size_t n3 = n2 + M; CA ca(allocator()); void* p1 = ca.allocate(n1 + n3); Allocation is for two items of size n1 and n2. Alignment size is added to n2 to create n3 to there is room to align n2 properly. if n1 % M == 0 then alignment is already fine and the extra M bytes is wasted. " Bugs closed Boost 1.64.0 smart_ptr Boost 1.57.0 Problem fixed