I found this great answer from 12 years ago that explains the copy-and-swap idiom and how to implement it in C++11 and C++03.
My question is: is this still the recommended solution or has it changed in later versions of C++? (specifically I'm currently using C++20)