QVM: Quaternions, Vectors, Matrices
deduce_mat2
#include <boost/qvm/deduce_mat.hpp>[ORIG_END] -->
namespace boost
{
namespace qvm
{
template <class A,class B,int Rows,int Cols>
struct deduce_mat2
{
typedef /*unspecified*/ type;
};
}
}
Assumptions:
Requirements:
Этот шаблон используется Boost QVM всякий раз, когда ему нужно вывести тип матрицы определенных размеров из типов двух пользовательских параметров функции. Возвращенный тип должен иметь доступный конструктор копий (типыAиBсами по себе могут быть некопируемыми, и любой из них может быть нематричным типом).
Основное определение шаблона возвращает неопределенный тип матрицы запрашиваемых измерений сscalar_type, полученныйdeduce_scalar::type, за исключением случаев, когдаAиBявляются одним и тем же матричным типомMизмеренийRowsxCols, в этом случае возвращаетсяM, который подходит только для копируемых типов. Boost QVM также определяет (частичные) специализации для типов матриц, которые он производит. Пользователи могут определять другие (частичные) специализации для своих типов.
Типичное использование шаблонаdeduce_mat2предназначено для указания предпочтительного типа матрицы, возвращаемого общими перегрузками шаблона функций в Boost QVM в зависимости от типа их аргументов.