Uso del argumento de plantilla vacía en la implementación de modismos de detección temprana

Enn4502 los autores describen una implementación temprana del idioma de detección que encapsula elvoid_t truco. Aquí está su definición junto con el uso para definir un rasgo parais_assignable (realmente esis_copy_assignable)

template<class...>
using void_t = void;

// primary template handles all types not supporting the operation:
template< class, template<class> class, class = void_t< > >
struct
detect : std::false_type { };
// specialization recognizes/validates only types supporting the archetype:
template< class T, template<class> class Op >
struct
detect< T, Op, void_t<Op<T>> > : std::true_type { };

// archetypal expression for assignment operation:
template< class T >
using
assign_t = decltype( std::declval<T&>() = std::declval<T const &>() );

// trait corresponding to that archetype:
template< class T >
using
is_assignable = detect<void, assign_t, T>;

Mencionan que no les gusta esto debido a lavoid utilizado en elis_assignable rasgo:

Aunque el código resultante era significativamente más comprensible que el original, no nos gustó la interfaz de detección anterior porque elvoid El argumento en la llamada de metafunción es un detalle de implementación que no debe filtrarse al código del cliente.

sin embargo, elvoid no tiene ningún sentido para mí en primer lugar. Si trato de usar este rasgo de tipo para detectar siint es copia asignable, me salestd::false_type Manifestación.

Si reescribois_assignable como:

template< class T >
using
is_assignable = detect<T, assign_t>;

Lo que tiene más sentido para mí, entonces el rasgo parece funcionar correctamente:Manifestación

Entonces mi pregunta aquí es¿Estoy malinterpretando algo en este documento, o fue simplemente un error tipográfico?

Si seestaba un error tipográfico, entonces no entiendo por qué los autores sintieron la necesidad de discutir cómo no les gustabavoid goteando, lo que me hace bastante seguro de que solo me falta algo.

Respuestas a la pregunta(1)

Su respuesta a la pregunta