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