This seems to be related to CWG issue #1980 (credits to T.C. for correcting me).
As a workaround you can define void_t
as:
template<typename... Ts> struct make_void { typedef void type;};
template<typename... Ts> using void_t = typename make_void<Ts...>::type;
(from cppreference)
live example on wandbox