diff --git a/include/pybind11/detail/common.h b/include/pybind11/detail/common.h index 80b61c80c..b42561769 100644 --- a/include/pybind11/detail/common.h +++ b/include/pybind11/detail/common.h @@ -377,16 +377,18 @@ constexpr size_t instance_simple_holder_in_ptrs() { struct type_info; struct value_and_holder; +struct nonsimple_values_and_holders { + void **values_and_holders; + uint8_t *status; +}; + /// The 'instance' type which needs to be standard layout (need to be able to use 'offsetof') struct instance { PyObject_HEAD /// Storage for pointers and holder; see simple_layout, below, for a description union { void *simple_value_holder[1 + instance_simple_holder_in_ptrs()]; - struct { - void **values_and_holders; - uint8_t *status; - } nonsimple; + nonsimple_values_and_holders nonsimple; }; /// Weak references (needed for keep alive): PyObject *weakrefs;