QVM: Quaternions, Vectors, Matrices
deduce_mat
Assumption:
is_mat::value is true.
Requirements:
- is_mat<deduce_mat::type>::valueдолжно бытьистинно
- deduce_mat::typeдолжен быть копируемым
- mat_traits<deduce_mat::type>::rows== Пороги
- mat_traits<deduce_mat::type>::cols== Колы
Этот шаблон используется Boost QVM всякий раз, когда ему нужно вывести тип копируемой матрицы определенных размеров из одного параметра функции типа матрицы, предоставленного пользователем. Вернутый тип должен иметь доступный конструктор копий. Обратите внимание, что M сам по себе может быть некопируемым.
Основное определение шаблона возвращает неуточненный тип копируемой матрицы размера Rows x Cols, за исключением случаев, когда mat_traits::rows== Rows && mat_traits::cols==Cols, в этом случае он возвращается M, что подходит только в том случае, если M является копируемым типом. Boost QVM также определяет (частичные) специализации для типов матриц, которые он производит. Пользователи могут определять другие (частичные) специализации для своих типов.
Типичное использование шаблона deduce_mat предназначено для указания предпочтительного типа матрицы, возвращаемого общими перегрузками шаблона функций в Boost QVM в зависимости от типа их аргументов.