There is, it's now the Sam() = default. The only reason I was building it like that was because I was checking for empty() inside the object, but I can let it default construct and check for nullptr on the shared_ptrs. Neat.