6 Implicit Functions: Rule of 0,3,5
  Constructor (1. Default, 2. copy, 3. move), Virtual Constructor
  Assignment Operator(4. Copy, 5. move assigment operator)
  6. Destructor: Virtual Destructor
Characteristics of OOPS
  1. Polymorphism
  |- Static(CompileTime)
    |- Templates(Class, Function, Variadic Templates, Template Parameter Pack)
    |- Operator Overloading
  |- Dynamic(Runtime): Virtual Functions
 2. Association: Composition , Aggregation
 3. Generalization = Inheritance
 4. Abstraction
 5. Classes, Objects, Data hiding
 6. Encapsulation
Exception Handling
Keywords: mutable
Versions
 C++11: attributes(carries_dependency, depreacated, fallthrough, likely, unlikely, maybe_unused, nodiscard, noreturn, no_unique_address, optimize_for_synchronized),  Constexpr and macros, decltype / decltype(auto), Function Pointer, Lambda Expression, lvalue & lvalue reference, rvalue & rvalue reference Copy, Move constructor , noexcept, remove_pointer_t, Pointers(Raw & Smart). unique_ptr, shared_ptr, Type Triats
 C++14
 C++17: Fold Expression, string_view
 C++20: __has_cpp_attribute, 3 Way Comparator, Abbreviated Function Template, Aggregate initialization, Concept & Contraint, Concept & Contraint
STL: Associative Containers(Unsorted(hashmap, Hashset), Sorted(map, set)), Container Adoptors(Stack, Queue, priority_queue), Sequence Containers(vector, deque), Algorithms, Iterators Functors
String
Terms (Design Patterns): RAII, RTTI