30 #ifndef LBANN_DETECT_EL_MPI_HPP_INCLUDED 31 #define LBANN_DETECT_EL_MPI_HPP_INCLUDED 34 #include <type_traits> 38 template <
typename... Ts>
45 template <
typename... Ts>
49 template <
typename T,
typename =
void>
61 void_t<typename std::enable_if<
62 std::is_same<T, El::byte>::value || std::is_same<T, short>::value ||
63 std::is_same<T, int>::value || std::is_same<T, unsigned>::value ||
64 std::is_same<T, long int>::value || std::is_same<T, unsigned long>::value ||
65 #ifdef EL_HAVE_MPI_LONG_LONG
66 std::is_same<T, long long int>::value ||
67 std::is_same<T, unsigned long long>::value ||
69 std::is_same<T, float>::value || std::is_same<T, double>::value ||
70 std::is_same<T, El::Complex<float>>::value ||
71 std::is_same<T, El::Complex<double>>::value>
::type>> : std::true_type
81 template <
bool B,
class T =
void>
103 #endif // LBANN_DETECT_EL_MPI_HPP_INCLUDED
typename make_void< Ts... >::type void_t
Alternative to c++17 std::void_t for older compilers.
By default, assume no instantiation for the type T in El::mpi.