Instead of
```
class G1CardSetArray : public G1CardSetContainer {
template<typename Derived>
static size_t header_size_in_bytes_internal() {
return offset_of(Derived, _data);
}
...
static size_t header_size_in_bytes() { return header_size_in_bytes_internal<G1CardSetArray>(); }
}
```
one can call `offset_of` directly on calculating the header size. The same pattern exists in other subclasses.
```
class G1CardSetArray : public G1CardSetContainer {
template<typename Derived>
static size_t header_size_in_bytes_internal() {
return offset_of(Derived, _data);
}
...
static size_t header_size_in_bytes() { return header_size_in_bytes_internal<G1CardSetArray>(); }
}
```
one can call `offset_of` directly on calculating the header size. The same pattern exists in other subclasses.