As the title says, I cannot think of any use case of C++17's new "universal type" std::any. Is it just a better version of void* or is there any other reason to use it but replacing void*? Under what circumstances is it good practice to use std::any in professional software development?