
On Sun, Dec 14, 2008 at 11:58 AM, Robert Kawulak <robert.kawulak@gmail.com> wrote:
From: Neal Becker
constrained_value does not currently support serialization. 1. Should it be added to the lib? 2. What would be a suggested implementation?
The implementation for general case seems a bit tricky, because some constrained objects (e.g., bounded_int<int, 1, 10>::type) should not be default-constructed by the Serialization library. Therefore, if I understand correctly, load_construct_data() /save_construct_data() should be overloaded rather than serialize() provided (but I'm not sure about this, I haven't used Serialization library).
Good questions. As to the second, would it be sensible to serialise the value + each of the policies that is non-empty (or stateless)? Detection of class emptiness (statelessness) is not working with all compilers, so this would possibly be a non-portable solution. But otherwise users would need to provide serialization support for each empty policy too.
Is it feasible to have the user select which policies to serialize?
Possibly by specialising non-member serialize() / load_construct_data() /save_construct_data()?
What about another optional template parameter for a default-construction value for the object (either an already instanced value, or a function/functor to build one or something)? Less hassle in many cases then, and would allow default construction of any of those that are by default not default constructable.