I was trying to understand how SFINAE
works and I was experimenting with this code
#include
struct One {
using x = int;
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