How to implement the pimpl idiom by using unique_ptr https://www.fluentcpp.com/2017/09/22/make-pimpl-using-unique_ptr/