35#ifndef _BLAZE_MATH_TRAITS_DIVTRAIT_H_
36#define _BLAZE_MATH_TRAITS_DIVTRAIT_H_
62template<
typename,
typename,
typename =
void >
struct DivTrait;
63template<
typename,
typename,
typename =
void >
struct DivTraitEval1;
64template<
typename,
typename,
typename =
void >
struct DivTraitEval2;
65template<
typename,
typename,
typename =
void >
struct DivTraitEval3;
72template<
typename T1,
typename T2 >
73auto evalDivTrait(
const volatile T1&,
const volatile T2& ) -> DivTraitEval1<T1,T2>;
128 :
public decltype( evalDivTrait( std::declval<T1&>(), std::declval<T2&>() ) )
138template<
typename T1,
typename T2 >
163template<
typename T1,
typename T2 >
177 :
public DivTraitEval2<T1,T2>
189struct DivTraitEval1<GroupTag<ID>,GroupTag<ID>,void>
193 using Type = GroupTag<ID>;
205template<
size_t ID,
typename T2 >
206struct DivTraitEval1< GroupTag<ID>, T2 >
210 using Type = GroupTag<ID>;
226 :
public DivTraitEval3<T1,T2>
253struct DivTraitEval3< T1, T2
254 ,
Void_t< decltype( std::declval<T1>() / std::declval<T2>() ) > >
258 using Type = RemoveCVRef_t< decltype( std::declval<T1>() / std::declval<T2>() ) >;
Header file for the CommonType type trait.
Header file for the EnableIf class template.
Header file for the GroupTag class template.
Header file for the IsNumeric type trait.
Header file for the RemoveCVRef type trait.
typename DivTrait< T1, T2 >::Type DivTrait_t
Auxiliary alias declaration for the DivTrait class template.
Definition: DivTrait.h:164
constexpr bool IsNumeric_v
Auxiliary variable template for the IsNumeric type trait.
Definition: IsNumeric.h:132
typename CommonType< T... >::Type CommonType_t
Auxiliary alias declaration for the CommonType type trait.
Definition: CommonType.h:95
void Void_t
Compile time type check.
Definition: Void.h:64
typename EnableIf< Condition, T >::Type EnableIf_t
Auxiliary type for the EnableIf class template.
Definition: EnableIf.h:138
Base template for the DivTrait class.
Definition: DivTrait.h:129
Header file for the Void type trait.