1
0
mirror of https://github.com/paboyle/Grid.git synced 2025-06-16 14:57:05 +01:00

Simplify syntax with Grid::EnableIf post code review. Updated EnableIf so that ReturnType defaults to void in same way as std::enable_if see https://en.cppreference.com/w/cpp/types/enable_if

This commit is contained in:
Michael Marshall
2021-02-03 15:17:03 +00:00
parent 77063418da
commit 3215d88a91
2 changed files with 5 additions and 8 deletions

View File

@ -98,8 +98,7 @@ accelerator_inline void convertType(ComplexF & out, const std::complex<float> &
}
template<typename T>
accelerator_inline typename std::enable_if<isGridFundamental<T>::value>::type
convertType(T & out, const T & in) {
accelerator_inline EnableIf<isGridFundamental<T>> convertType(T & out, const T & in) {
out = in;
}
@ -138,14 +137,12 @@ accelerator_inline void convertType(iScalar<T1> & out, const iScalar<T2> & in) {
}
template<typename T1,typename T2>
accelerator_inline typename std::enable_if<!isGridScalar<T1>::value>::type
convertType(T1 & out, const iScalar<T2> & in) {
accelerator_inline NotEnableIf<isGridScalar<T1>> convertType(T1 & out, const iScalar<T2> & in) {
convertType(out,in._internal);
}
template<typename T1,typename T2>
accelerator_inline typename std::enable_if<!isGridScalar<T2>::value>::type
convertType(iScalar<T1> & out, const T2 & in) {
accelerator_inline NotEnableIf<isGridScalar<T2>> convertType(iScalar<T1> & out, const T2 & in) {
convertType(out._internal,in);
}