QVM: Quaternions, Vectors, Matrices
boost/qvm/vec_traits_array.hpp
В этом заголовке представлены специализацииvec_traitsвыводивывести_vec2шаблоны, позволяющие передавать C-массивы любой функции Boost QVM, которая принимает вектор совпадающего размера.
Например, после#include<boost/qvm/vec_traits_array.hpp>, чтобы вычислить точечный продукт из двух массивов C, вы можете использовать:
float a[4], b[4];
float dp = dot(a,b);
Чтобы использовать перегрузки оператора Boost QVM, по крайней мере один из аргументов не должен быть встроенного типа; например, вы не можете умножить вектор массива C на скаляр, используяоператора *=напрямую. Используйтеvref, чтобы обойти этот вопрос:
float a[4];
vref(a) *= 42;