`sfinae` proposal… useful or unnecessary?

I am trying to learn what a SFINAE is… Well, I believe I understand it quite well, however, I do not have a lot of practice in the subject… I mean I would find it difficult to list all the cases in which SFINAE should or could be used, or it would be difficult for me to immediately understand what a given sample of an SFINAE code should do, however, I believe I understand the core concept well enough to use it effectively.

Nonetheless looking through examples of SFINAE usage i came to the few conclusions…

One of which is; it is extremely pointless to use a chain of std::enable_if_t, std::void_t, std::is_same, etc, etc, etc, to define a single type using type = int *. IMHO (of a “newbie” with untrained eyes) such chains make the code less (extremely less) readable.

The second conclusion was: wouldn’t it be useful to have the ability to check few conditions at the same time?

So I created this alias: (well “created” is waaay too big word… I just wrote 4 lines of code…)

template<typename T, typename ...> using sfinae = T;  template<typename T, typename ...> using SFINAE = T;  // usage examples:  // 1) within class declaration: template <typename T,      sfinae<bool,         std::enable_if_t<std::is_integral_v<T>>,         std::enable_if_t<std::is_arithmetic_v<T>>     > = true /* provide default option, bc reasons */> class foo;  // 2) within function declaration: template <typename T,      sfinae<bool,         std::enable_if_t<std::is_integral_v<T>>,         std::enable_if_t<std::is_arithmetic_v<T>>     > = true /* provide default option, bc reasons */> void foo;  // 3) as a function return type: template <typename T>  sfinae<T,     std::enable_if_t<std::is_integral_v<T>>,     std::enable_if_t<std::is_arithmetic_v<T>> > const & foo(T const & val);  // 4) To define other SFINAE-conditions as aliases: template <typename T>  using check_xyz = sfinae<T,     std::enable_if_t<std::is_integral_v<T>>,     std::enable_if_t<std::is_arithmetic_v<T>> >;  template <typename T, check_xyz<bool> = true> class foo; 

And my main concern/question is; would a professional cpp developer deemed sfinae</*...*/> (as i proposed it), useful or extremely unnecessary? Are there any changes that could be introduced to the idea?