Użyj std::variant<int, TwojaKlasa>. Przewagi nad std::any:
• na twoje zmienne variant przeznaczy stos, nie stertę sam variant będzie na stercie (heap) dzięki/przez vector, ale i tak sam nie będzie dalej niczego alokował, więc powinno być nieco wydajniejsze
• variant nie przechowa typu innego, niż podane przez ciebie, w przeciwieństwie do any, które akceptuje jakikolwiek typ, jak nazwa wskazuje.
Oczywiście, jeśli nie ma tego jeszcze u ciebie w std::, możesz użyć odpowiednika z boost::.