Summary
`compiler_meta_t` and `field_descriptor_t<owner,field>` are plugin-output scaffolding
with no independent value:
- The only consumer is the h5cpp-compiler plugin, which has no released users yet.
- C++26 reflection bypasses them entirely — the auto-reflection path lands directly
into a new `storage_traits_impl_t` partial specialization, no intermediate type
list required.
- For the pre-C++26 manual-registration case, the old `dt_t` / `h5::create()`
path (still present via `resolved_type_t`) is cleaner and more direct.
- Zero tests exercise these types. Zero external users exist.
Work
All changes are in `h5cpp/H5Tmeta.hpp`:
- Remove `metadata_version`, `field_descriptor_t`, `is_reflected_compound_t`,
`compiler_meta_t` forward declaration (~lines 286-302).
- Remove `storage_traits_impl_t` partial specialization for
`is_reflected_compound_t::value` (~lines 399-427).
- Remove `is_transport_contiguous_impl_t` specialization for same (~lines 432-443).
- Remove `access_traits_t` specialization for same (~line 631).
- Remove the three `!is_reflected_compound_t::value` guards from the
contiguous-sequence `access_traits_t` specializations (lines 455, 676, 696) —
they were no-ops for all non-plugin types and are now dead.
- Update stale comment in `test/H5Aall.cpp` (line 145).
What is NOT removed
- `storage_traits_impl_t` — backbone of the new type engine, survives.
- `is_transport_contiguous_t` / `access_traits_t` — survive.
- `resolved_type_t` fallback to `dt_t` — permanent compat shim, survives.
- Old `dt_t` / `h5::create()` path — survives as the manual-registration escape hatch.
The C++26 auto-reflection specialization will land directly into
`storage_traits_impl_t` in a later PR with no dependency on the removed types.
Summary
`compiler_meta_t` and `field_descriptor_t<owner,field>` are plugin-output scaffolding
with no independent value:
into a new `storage_traits_impl_t` partial specialization, no intermediate type
list required.
path (still present via `resolved_type_t`) is cleaner and more direct.
Work
All changes are in `h5cpp/H5Tmeta.hpp`:
`compiler_meta_t` forward declaration (~lines 286-302).
`is_reflected_compound_t::value` (~lines 399-427).
contiguous-sequence `access_traits_t` specializations (lines 455, 676, 696) —
they were no-ops for all non-plugin types and are now dead.
What is NOT removed
The C++26 auto-reflection specialization will land directly into
`storage_traits_impl_t` in a later PR with no dependency on the removed types.