See https://abseil.io/tips/218 .
The idea applied in our case would be to force ADL to lookup the correct overload for serializable user defined types via a member template function in the serializer. The serializable type then must implement a free function and a template freind member function to do the serialization. One major benefit I see over our current inherit-from-ISerializable method is that it would eliminate that dependency (and possibly reduce #include's?).
Investigate further and see if this makes sense. If so, do it.
See https://abseil.io/tips/218 .
The idea applied in our case would be to force ADL to lookup the correct overload for serializable user defined types via a member template function in the serializer. The serializable type then must implement a free function and a template freind member function to do the serialization. One major benefit I see over our current inherit-from-ISerializable method is that it would eliminate that dependency (and possibly reduce #include's?).
Investigate further and see if this makes sense. If so, do it.