GCC, Clang, ICC и MSVC отвергают этот код, но я не нахожу никаких нарушенных правил в последнем рабочем проекте стандарта C ++.
Это правило уже включено в стандарт или в отчете о дефектах?
#include <type_traits>
template< typename t >
struct s {
std::conditional_t< std::is_integral< t >::value, t, void() > mem;
};
s< int > a;
s< void * > b;