For the C++ folks out there, I've got a question about an approach to take on the object-model branch. At issue is how to wrap the various C structures returned to callers, particularly in a backward compatible manner. Currently, I'm looking at svn_wc_notify_t *. As I see it, there are a few options:
1) Just wrap the pointer to the C struct as a member of the wrapper class. Pros: Easy to implement; lightweight constructor. Cons: Getters would need to translate to C++ types; would need to implement a copy constructor which deep copies the C struct; would also introduce pools, since creating and duplicating C structs requires them. 2) Wrap each C struct member individually Pros: C->C++ complexity is constrained to the constructor, everything else is C++ types Cons: Hard to extend for future compatibility 3) Just pass the C-struct pointer around; don't even bother with a class Pros: Dead simple. Cons: Requires more memory management thought by consumers; not C++-y enough; may introduce wrapping difficulties. I'd like to come up with something consistent, which would be used throughout the C++ bindings. I'm also interested in a solution which ensures the C++ bindings can be used as the basis for other object-oriented bindings models (Python, Perl, etc.) Thoughts? -Hyrum