coord/ops: rename traits to result
This commit is contained in:
parent
efb2657798
commit
650f5c05e6
@ -34,16 +34,22 @@ namespace util {
|
|||||||
template <size_t,typename> class A,
|
template <size_t,typename> class A,
|
||||||
template <size_t,typename> class B
|
template <size_t,typename> class B
|
||||||
>
|
>
|
||||||
struct traits { };
|
struct result { };
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
template <> struct traits<colour,colour> { template <size_t S, typename T> using result = colour<S,T>; };
|
template <> struct result<colour,colour> { template <size_t S, typename T> using type = colour<S,T>; };
|
||||||
template <> struct traits<extent,extent> { template <size_t S, typename T> using result = extent<S,T>; };
|
template <> struct result<extent,extent> { template <size_t S, typename T> using type = extent<S,T>; };
|
||||||
template <> struct traits<extent,vector> { template <size_t S, typename T> using result = extent<S,T>; };
|
template <> struct result<extent,vector> { template <size_t S, typename T> using type = extent<S,T>; };
|
||||||
template <> struct traits<point,extent> { template <size_t S, typename T> using result = point <S,T>; };
|
template <> struct result<point,extent> { template <size_t S, typename T> using type = point <S,T>; };
|
||||||
template <> struct traits<point,vector> { template <size_t S, typename T> using result = point <S,T>; };
|
template <> struct result<point,vector> { template <size_t S, typename T> using type = point <S,T>; };
|
||||||
template <> struct traits<vector,point> { template <size_t S, typename T> using result = point <S,T>; };
|
template <> struct result<vector,point> { template <size_t S, typename T> using type = point <S,T>; };
|
||||||
template <> struct traits<vector,vector> { template <size_t S, typename T> using result = vector<S,T>; };
|
template <> struct result<vector,vector> { template <size_t S, typename T> using type = vector<S,T>; };
|
||||||
|
|
||||||
|
template <
|
||||||
|
template <size_t,typename> class A,
|
||||||
|
template <size_t,typename> class B
|
||||||
|
>
|
||||||
|
using result_t = typename result<A,B>::type;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <template <size_t,typename> class> struct is_coord : std::false_type { };
|
template <template <size_t,typename> class> struct is_coord : std::false_type { };
|
||||||
@ -76,7 +82,7 @@ namespace util {
|
|||||||
auto \
|
auto \
|
||||||
operator OP (A<S,T> a, B<S,U> b) \
|
operator OP (A<S,T> a, B<S,U> b) \
|
||||||
{ \
|
{ \
|
||||||
typename coord::traits<A,B>::template result< \
|
typename coord::result<A,B>::template type< \
|
||||||
S,std::common_type_t<T,U> \
|
S,std::common_type_t<T,U> \
|
||||||
> out {}; \
|
> out {}; \
|
||||||
for (size_t i = 0; i < S; ++i) \
|
for (size_t i = 0; i < S; ++i) \
|
||||||
@ -319,7 +325,7 @@ namespace util {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
///////////////////////////////////////////////////////////////////////////
|
||||||
template <
|
template <
|
||||||
size_t S,
|
size_t S,
|
||||||
typename T
|
typename T
|
||||||
@ -334,6 +340,8 @@ namespace util {
|
|||||||
return sum;
|
return sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
template <
|
template <
|
||||||
size_t S,
|
size_t S,
|
||||||
typename T,
|
typename T,
|
||||||
@ -351,6 +359,7 @@ namespace util {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
template <
|
template <
|
||||||
size_t S,
|
size_t S,
|
||||||
typename T,
|
typename T,
|
||||||
@ -367,6 +376,7 @@ namespace util {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
template <
|
template <
|
||||||
size_t S,
|
size_t S,
|
||||||
typename T,
|
typename T,
|
||||||
@ -401,7 +411,7 @@ namespace util {
|
|||||||
return k;
|
return k;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
///////////////////////////////////////////////////////////////////////////
|
||||||
template <
|
template <
|
||||||
size_t S,
|
size_t S,
|
||||||
typename T,
|
typename T,
|
||||||
|
Loading…
Reference in New Issue
Block a user