Boost QVM defines various function templates which take a reference to a quaternion/vector/matrix object and return an object of unspecified static quaternion/vector/matrix type for which the q_traits/v_traits/m_traits template is specialized to provide a different (possibly mutable) view to the original quaternion/vector/matrix object.
For example, given a vector v, the expression col_m(v) returns a view proxy that makes v look and feel like a matrix-column. More complex views are created by simple composition, for example transp(col_m(v)) is equivalent to row_m(v).
Note: typically, the returned view proxies are simply the original object reference reinterpret_casted to an internal quaternion/vector/matrix type. This technique avoids creating a temporary object (these internal types are made non-copyable to prevent potential undefined behavior, however they do define operator= that acts on the original object.)
Below is a list of all view proxies supported by Boost QVM: