Template Metafunction Identity

The identity metafunction stores the type provided in value. The is_same metafunction uses partial template specialization to determine at compile time if two object types are the same.

namespace framework {
namespace meta
{
template struct identity { typedef T value; };
template struct is_same { enum { value = false }; };
template struct is_same { enum { value = true }; };
} // namespace meta
} // namespace framework

Examples:

identity::value f = 3.14159f;
true == is_same::value, int>::value;

TemplateMetaprogrammingTechniques CategoryCppTemplates