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