В принципе - да, но как всегда - решение не для всех. Но тут речь идёт о принципиальном стирании типа. Было бы идеально, если бы std::any создавало бы водную точку для «duck-typing» в языке. Тогда это был бы действительно полезный инструмент.
Это ж как any, но с ограничением допустимого списка хранимых типов.
Мне понравился толк https://www.youtube.com/watch?v=tbUCHifyT24 про type erasure, смотрится интереснее чем звучит. Там обсуждаются разные способы type erasure реализовать, заодно обсуждается примеры STL - any, разные function, итд.