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 struct make_void { typedef void type;};
template using void_t = typename make_void::type;
(from cppreference)
live example on wandbox