As Adam Nevraumont pointed out, std::unique_ptr<void*>
wont work.
If you're using c++17
, std::any
is probably your best option.
This would replace std::unique<void>
with std::unique<std::any>>
. Keep in mind std::unique_ptr<void>
won't compile without a lot of extra work.
Best options are:
void*
std::unique<std::any>>
for smart pointer support + type safetyResources on std::any
Questions related to std::any
: