17 #ifndef HELPER_FUNCTIONS__TEMPLATE_UTILS_HPP_
18 #define HELPER_FUNCTIONS__TEMPLATE_UTILS_HPP_
21 #include <type_traits>
27 namespace helper_functions
33 template<
template<
typename ...>
class ExpressionTemplate,
typename T,
typename =
void>
40 template<
template<
typename ...>
class ExpressionTemplate,
typename T>
42 types::
void_t<ExpressionTemplate<T>>>: std::true_type {};
49 template<
template<
typename ...>
class ExpressionTemplate,
typename T,
typename ReturnT,
58 template<
template<
typename ...>
class ExpressionTemplate,
typename T,
typename ReturnT>
60 std::enable_if_t<std::is_same<ReturnT,
61 ExpressionTemplate<T>>::value>>: std::true_type {};
67 #endif // HELPER_FUNCTIONS__TEMPLATE_UTILS_HPP_