Serializando objetos de função
É possível serializar e desserializar umstd::function
, um objeto de função ou um encerramento em geral em C ++? Como? O C ++ 11 facilita isso? Existe algum suporte de biblioteca disponível para tal tarefa (por exemplo, no Boost)?
Por exemplo, suponha que um programa C ++ tenha umstd::function
que é necessário para ser comunicado (digamos via um socket TCP / IP) para outro programa C ++ residente em outra máquina. O que você sugere em tal cenário?
Para esclarecer, as funções que devem ser movidas são supostamente puras e livres de efeitos colaterais. Portanto, não tenho problemas de segurança ou incompatibilidade de estado.
Uma solução para o problema é construir uma pequena linguagem específica de domínio incorporado e serializar sua árvore de sintaxe abstrata. Eu estava esperando que eu pudesse encontrar algum suporte de linguagem / biblioteca para mover uma representação de funções independente da máquina.