I copied block on below from https://en.cppreference.com/w/cpp/language/type_alias
template<typename...>
using void_t = void;
template<typename T>
void_t<typename T::foo> f();
f<int>(); // error, int does not have a nested type foo
I dont understand some of lines of it such us:
template<typename...>
why type of name not defined in parameter list?
and
void_t<typename T::foo> f();
why f() called instead declare?
What does it mean this part? void_t<typename T::foo>