[review] Review of Flyweight library

* What is your evaluation of the design? It looks very well designed and I especially find the flexibility of the policy mechanism to be very well done. * What is your evaluation of the implementation? I haven't looked at much code, so I have no opinion here. * What is your evaluation of the documentation? I found the documentation to be comprehensive and with good flow. * What is your evaluation of the potential usefulness of the library? In my programming career I haven't encountered a use case for this library. That isn't to say it wouldn't be useful in other domains. * Did you try to use the library? With what compiler? Did you have any problems? Nope, didn't try it. * How much effort did you put into your evaluation? A glance? A quick reading? In-depth study? I did an in depth study of the documentation only. * Are you knowledgeable about the problem domain? I wasn't before I read the documentation, but I feel knowledgeable now after going through it. * Do you think the library should be accepted as a Boost library? Be sure to say this explicitly so that your other comments don't obscure your overall opinion. Yes, I do. My preference on the equality mechanism would be to make it a configuration option via a template parameter during construction with the default being (fw1.get()==fw1.get()) instead of (&(fw1.get())==&(fw1.get()). The benefit would be that those who would understand when this would fail could enable the quicker behavior while those who don't understand could remain in blissful ignorance. I prefer the original configuration mechanism. I think that it, combined with the very good documentation, is good enough and further extensions would complicate things further. David -- David Sankel Sankel Software www.sankelsoftware.com 585 617 4748 (Office) 585 309 2016 (Mobile)

Hello David, thanks for your review! David Sankel ha escrito: [...]
My preference on the equality mechanism would be to make it a configuration option via a template parameter during construction with the default being (fw1.get()==fw1.get()) instead of (&(fw1.get())==&(fw1.get()). The benefit would be that those who would understand when this would fail could enable the quicker behavior while those who don't understand could remain in blissful ignorance.
Is it really necessary to provide a template parameter to control that? After all, if flyweight<...> provided (fw1.get()==fw1.get()) semantics, it's trivial to override this on a per case basis: typedef flyweight<whatever,...> fw_t; inline bool operator==(const fw_t& x,const fw_t& y) { return &x.get()==&y.get(); } Not sure if this deserves a config parameter of its own... Joaquín M López Muñoz Telefónica, Investigación y Desarrollo
participants (2)
-
David Sankel
-
Joaquín Mª López Muñoz