After every exercise:
- Did I use any raw new or delete? (if yes, fix it)
- Is every resource owned by exactly one RAII wrapper?
- Does this compile cleanly with
-Wall -Wextra -Werror? - Can I explain why I chose
shared_ptrvsunique_ptrvs raw reference here? - If I used mutex, is there any scenario where this deadlocks?
- If I used an atomic, is the memory orering correct and minimal?
- Would moving this type into a
std::vectortrigger a copy instead of a move? Why?