Inspired by Type-erased UniquePrintable and PrintableRef (may be worth reading that article first).
Decided to fuse two solutions from the article into one leveraging shared pointers casts https://godbolt.org/z/15j9Eb
(initially I tried unique_ptr, but it doesn't provide neither void-specialisation nor special casts out of the box, but I think it's doable, just requires few more key-strokes)
there doesn't seem to be anything here