
Reece Dunn wrote:
I have worked on a property implementation that is available under the boost sandbox (if you want a zip distribution I can create one): boost-sandbox/boost/property boost-sandbox/libs/property
My version supports various property implementations (aliased, set/get, value) and supports scalar (single-value) and rank1 (1D array) properties.
Your various types of properties look interesting, and I definitely think that indexable properties are definitely a neat idea. However, there are two issues that I think could be improved. First, it would not appear that you support write-only properties. Second, it appears that your set type is fixed, meaning that if it is possible to assign an A to a B, it may not be possible to assign an A to a B property. Mine avoids this problem by templating the set method to take any type, allowing compilation to fail if the type client code attempts to use is invalid. I could be incorrect in my assessment of your code, as I have not compiled it myself, so please correct me if I am wrong.