QVM: Quaternions, Vectors, Matrices
C Arrays
В boost/qvm/quat_traits_array.hpp, boost/qvm/vec_traits_array.hpp и boost/qvm/mat_traits_array.hpp Boost QVM определяет соответствующие quat_traits, vec_traits и mat_traits специализации, позволяющие функциям Boost QVM работать непосредственно на простых старых C-массивах:
float v[3] = {0,0,7};
float3 vrot = rotx_mat<3>(3.14159f) * v;
Естественно, перегрузки оператора не могут начаться, если все элементы выражения имеют встроенные типы. Следующее является незаконным:
float v[3] = {0,0,7};
v *= 42;
Шаблоны функций vref и mref могут использоваться для работы над этой проблемой:
float v[3] = {0,0,7};
vref(v) *= 42;