Why use std::unique_ptr for dynamically managed book data?
std::unique_ptr
It provides exclusive ownership and automatically releases the managed memory
It prevents all dynamic allocation and uses only stack variables
It allows unlimited owning copies of the same pointer
It requires calling delete manually before every return
delete