a) Example: template T1& fun(T1& a, T2 b) { return a += b; } b) The five special member functions are: - default constructor - copy constructor - move constructor - destructor - copy assignment operator - move assignment operator c) Marking a constructor as explicit tells the compiler that it is not allowed to use this constructor for implicit type conversions. d) The sizeof-operator returns the size in bytes of a type/object while the sizeof...-operator returns the number of elements in a variadic template/parameter pack. e) When having constructed an object with the placement new-operator or when destroying a non-trivial object that resides inside a union.