No I don't think so (I tried first), mainly because the function that I had to override (JSONInputArchive::search()) in order to make std::optional possible was non-virtual, and also (indirectly) called from few places from within the cereal framework, but out of the Archive itself, so that I couldn't just implement another function for this.

If there is a better solution I overlooked, let me know.