The member data really should be reordered. When you order member data like
```C++
std::vector<...>
bool
std::vector<...>
```
The compiler must add 7 bytes of padding between the bool and the second ```std::vector<...>```.

The best way to declare member data is to have the largest objects (any object larger than 8 bytes can be considered 8 bytes when doing this comparison) first in the member data list and then order by decreasing size. That order minimizes the amount of padding the compiler must add to a class.