std::is_integral metaprogramming sırasında verinin bir türe ait olup olmadığına ilişkin kısıtlama yapılmak istendiğinde kullanılan bir araçtır.
Yukarıdaki 26 satırdaki ifadeden dolayı aşağıdaki gibi compile sürecinde static_assert hatasına neden olacaktır.
Bu satırı kaldırırsanız aşağıdaki gibi bir çıktı göreceksiniz.
Şimdi is_integral sınıfının temel olarak nasıl yazıldığını öğrenmek istersek aşağıdaki gibi bir implementasyon mümkündür.
Burada asıl kritik nokta is_integral_base sınıfı üzerinden olmaktadır. is_integral_base sınıfının integral veri türleri için template specialization yapılmakta ve bu sınıflar true_type türünden türetilmektedir.
Diğer her tür ise false_type türünden türetilmiştir. Bu sayede örneğin is_integral<bool> için is_integral_base<bool> için std::true_type türünden türetildiği için value değeri true dönecektir.
Yukarıda ise false_type/true_type türlerinin basit bir bildirimi görülmektedir. Beklenildiği gibi sınıfların üye elemanlarından biri value türüdür. Ve false_type için bu false, true_type için bu true olarak atama yapılmıştır.