Je ne suis pas familier avec la magie de Template en cpp. Après avoir lu ce que "TemplateRex" a dit dans ce document enlace j'ai été confus sur la façon dont std::is_intergral fonctionne.
template< class T >
struct is_integral
{
static const bool value /* = true if T is integral, false otherwise */;
typedef std::integral_constant<bool, value> type;
};
Je peux comprendre le fonctionnement de SFINAE et le fonctionnement des traits. Après avoir consulté Référence cpp Une implémentation de "is_pointer" a été trouvée à la place de "is_integral" qui ressemble à ceci :
template< class T > struct is_pointer_helper : std::false_type {};
template< class T > struct is_pointer_helper<T*> : std::true_type {};
template< class T > struct is_pointer : is_pointer_helper<typename std::remove_cv<T>::type> {};
Est-ce que 'is_integral' a une implémentation similaire ? Comment ?