C++ Templates

C++ Tutorial

🧩 C++ Templates

C++ Templates allow you to write generic code that works with any data type.
Instead of writing the same function or class multiple times for different types, you write it once using templates.

Introduced to support generic programming.


 1. Why Use Templates?

  • Avoid code duplication

  • Type-safe generic programming

  • Reusable and flexible code

  • Widely used in STL (vector, map, stack, etc.)


 2. Function Templates

🔸 Basic Syntax


 

Usage:


 

✔ Compiler generates separate versions for each type


 3. Template with Multiple Types


 

Usage:


 


 4. Class Templates

🔸 Basic Example


 

Usage:


 


 5. Template with Default Type


 

Usage:


 


 6. Template Specialization

Allows custom behavior for a specific type.


 


 7. Function Template Specialization


 


 8. Templates and STL (Real Use)


 

✔ STL is built entirely on templates


 9. typename vs class


 

and


 

✔ Both are identical in templates
typename preferred in modern C++


 10. Limitations of Templates

  • Compilation time increases

  • Error messages can be complex

  • Code bloat (multiple instantiations)


❌ Common Mistakes


 

✔ Fix:


 


🔁 Templates vs Function Overloading

Templates Overloading
Generic Specific
One definition Multiple definitions
Compile-time Compile-time
Type-safe Type-safe

📌 Summary

  • Templates enable generic programming

  • Support functions and classes

  • Used heavily in STL

  • Reduce code duplication

  • Compile-time type safety

You may also like...