1. ► Templates are type-safe
2. ► Templates can be used to provide compile time constraints
3. ► Templates allow optimizations because of:
4. ► Template compilation is slow because of:
5. ► Templates are used for making a function or a class type agnostic
6. ► Templates are mostly used for generic containers
7. ► Constants allow compiler optimizations
8. ► dynamic_cast is used to find out the exact type of template class at run-time
9. ► C++ doesn’t allow type mismatches
10. ► ‘int *’ is same as ‘const int *’
11. ► ‘const int *’ is same as ‘int const *’
12. ► A const value can be made to change via static_cast
13. ► Template types are checked at run-time
14. ► In ‘int * const’, interger value is a constant
15. ► A constant function cannot have side-effects
16. ► Using const is a good design practice to avoid the possibility of side-effects