[#mp_units-vector_axes] = xref:mp_units.adoc[mp_units]::vector_axes :relfileprefix: ../ :mrdocs: Ordered list of the 1D‐vector component axes a vector quantity decomposes into == Synopsis Declared in `<mp‐units/framework/vector_components.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<xref:mp_units/QuantitySpec.adoc[QuantitySpec] auto Axes...> requires detail::ValidVectorAxes<Axes...> struct vector_axes; ---- == Description A user opts a vector whole into decomposition by specializing `vector_components` (the customization point in `customization_points.h`) and inheriting from this template, listing the per‐axis quantity specs in coordinate order: [,cpp] ---- template<> struct mp_units::vector_components : mp_units::vector_axes {}; ---- The axis‐intrinsic preconditions are enforced here: every axis must be a vector quantity, the axes must share a common hierarchy root (be the same kind of quantity), and they must be pairwise‐distinct kinds (declare each with `is_kind`). A specialization that violates them is ill‐formed at the point of definition. The relational preconditions (axes share the whole's hierarchy root, differ from the whole's kind, and fit the representation) need the whole and the representation, so they are enforced by the `Decomposable` concept. == Static Data Members [cols="1"] |=== | Name | xref:mp_units/vector_axes/axis.adoc[`axis`] | xref:mp_units/vector_axes/size.adoc[`size`] |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#