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