así que estaba buscando a través de algún código fuente impulso y encontré esto:¿Por qué boost :: checked_delete "intencionalmente complejo"?
(de <boost/checked_delete.hpp>
)
template<class T> inline void checked_delete(T * x)
{
// intentionally complex - simplification causes regressions
typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
(void) sizeof(type_must_be_complete);
delete x;
}
Cualquiera que suceda a saber por qué se lleva a cabo de esta manera? ¿No sería suficiente con sizeof (T) (por ejemplo)?
Buena pregunta :) –