Serializacja obiektów funkcji
Czy można serializować i deserializować astd::function
, obiekt funkcji lub ogólnie zamknięcie w C ++? W jaki sposób? Czy C ++ 11 to ułatwia? Czy jest dostępne wsparcie biblioteki dla takiego zadania (np. W Boost)?
Załóżmy na przykład, że program C ++ mastd::function
które należy przekazać (powiedzmy przez gniazdo TCP / IP) do innego programu C ++ rezydującego na innym komputerze. Co sugerujesz w takim scenariuszu?
Aby wyjaśnić, funkcje, które mają zostać przeniesione, powinny być czyste i wolne od efektów ubocznych. Nie mam więc problemów z bezpieczeństwem ani niezgodnością ze stanem.
Rozwiązaniem tego problemu jest zbudowanie małego wbudowanego języka specyficznego dla domeny i serializowanie abstrakcyjnego drzewa składni. Miałem nadzieję, że uda mi się znaleźć obsługę języka / biblioteki do przenoszenia niezależnej od maszyny reprezentacji funkcji.