Type traits are an important metaprogramming technique that enables us to inspect properties of types or to perform transformations of types at compile-time. Type traits are themselves templates and you can see them as meta-types. Knowing information such as the nature of a type, its supported operations, and its various properties is key for performing conditional compilation of templated code. It is also very useful when writing a library of templates.
In this chapter, you will learn the following:
- Understanding and defining type traits
- Understanding SFINAE and its purpose
- Enabling SFINAE with the
- Exploring the standard type traits
- Seeing real-world examples of using type traits
By the end of the chapter, you will have a good understanding of what type traits are, how they are useful, and what type traits are available in the C++ standard library.