Not an expert, so I can’t really answer the question. But may I ask: Why don’t you use copy/move constructors?