My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
TemplateInfo  
Template parameter information
Updated Dec 19, 2009 by danielgutson@gmail.com

Introduction

This library is useful to query type information, e.g. for compile time assertions.

Details

The library provides two things:

  • a set of individual type predicates
  • a structure that encapsulates all the predicates and has some operators.

The individual predicates are:

  • template_is_pointer<T>::value
  • template_is_reference<T>::value
  • template_is_const<T>::value
  • template_is_volatile<T>::value
  • template_is_integral<T>::value: returns true if T is some kind of int (short, long, signed, etc.).
  • template_is_native<T>::value: returns true if T is a native (unqualified) data type.
  • type_equal<T1,T2>::value: returns true if T1 and T2 are the same type.

The encapsulating structure is template_info<T>, which provides the following members:

  • template_info<T>::is_pointer
  • template_info<T>::is_reference
  • template_info<T>::is_const
  • template_info<T>::is_volatile
  • template_info<T>::is_integral
  • template_info<T>::is_native
  • template_info<T>::is_pointer
  • template_info<T>::is_equal_to<T2>::value: similar to type_equal.
  • template_info<T>::is_smaller_than<T2>::value: returns true if sizeof(T) < sizeof(T2)
  • template_info<T>::is_greater_than<T2>::value: returns true if sizeof(T) > sizeof(T2)
  • template_info<T>::is_same_size<T2>::value: returns true if sizeof(T) == sizeof(T2)
  • template_info<T>::size: returns sizeof(T)

The template_info<T> can be used as a template parameter itself.


Sign in to add a comment
Powered by Google Project Hosting