Я бы порекомендовал какую-то парную структуру данных с идентификатором на одной стороне и указателем функции на другой. Если их достаточно, что-то вроде карты:
typedef void (*fptr_t)(); // or whatever your function pointer type is
std::map<std::string, fptr_t> fptr_map;
Ваше приложение должно построить эту карту, когда она будет нужна, и сохранить результат в кеше. Затем, когда вы «записываете» указатели функций в файл, вы должны вместо этого писать уникальные ключи std :: string. Когда приложение «читает» указатели на функции, оно считывает ключи и сопоставляет их с указателями на функции для этого вызова программы.