Мне нужно написать оболочку для функции. Его цель - кэшировать результат и, возможно, исключения функции. Он должен работать следующим образом: во время первого выполнения он должен выполнить функцию и сохранить результат (или исключение), возвращаемый функцией. Во время следующих исполнений он должен вернуть ранее сохраненный результат или исключение перехвата.
Проблема заключается в том, что я хочу сохранить тип исключения. Поэтому в основном я хочу поймать все виды исключений и реконструировать его в будущем, не теряя своего типа.
Я использую С++ или С++ 11, поэтому любое решение на одном из этих языков было бы очень оценено.