Boost logo

Boost :

Subject: Re: [boost] [property] interest in C# like properties for C++?
From: Sergey Sadovnikov (flex_ferrum_at_[hidden])
Date: 2009-10-21 14:41:46

Hello, Matthew.

Wednesday, October 21, 2009 at 12:07:28 AM you wrote:

MC> Peder Holt wrote:
>> It now compiles without warnings, also for classes with virtual members.
>> Operator support is added for operator*.
>> Regards
>> Peder
MC> Very nice. Do you know how reliable your reliance on UB is on the major
MC> platforms? If it works on MSVC 9+, GCC 4.1, and darwin, that's enough
MC> for me.

MC> Do you plan to have a macro for defining simple/trivial properties with
MC> a single line? A more sophisticated macro could define the functions to
MC> use for the getter/setter (similar to how Managed C++ and C++/CLI do it
MC> AFAIK). Just like in C#, it encourages good design from the start of an
MC> implementation: the first iteration can use properties backed by simple
MC> member variables, while future implementations may use a more
MC> complicated backend without the interface ever needing to change (and
MC> without resorting to set/get syntax). That allows the design focus at
MC> first to be on the interface instead of worrying about doing a good job
MC> on both the interface and the implementation.


I use this library during last year in two quite big projects. Now
this library supports:

 - Triviral properties (also support property initialization inside
 - Properties with setters/getters
 - Indexable properties (up to three dimensions)
 - Abstract properties
 - Runtime properties enumeration
 - Generic setters/getters by property name (in runtime)
 - Generic setters/getters with conversion from/to string (but not for
 all cases)
 - Generic serialization with boost::serialization-like interface.

 Properties supports full set of unary/binary operators, 'member
 access' operator, and some other useful things.

Best Regards,
 Sergey                          mailto:flex_ferrum_at_[hidden]

Boost list run by bdawes at, gregod at, cpdaniel at, john at