Denis Koroskin wrote:
On Sun, 02 Aug 2009 13:00:38 +0400, Michiel Helvensteijn
<m.helvensteijn.rem...@gmail.com> wrote:
Walter Bright wrote:
bool empty { ... }
void empty=(bool b) { ... }
The only problem is when a declaration but not definition is desired:
bool empty;
but oops! That defines a field. So we came up with essentially a hack:
bool empty{}
i.e. the {} means the getter is declared, but defined elsewhere.
What do you think?
It is quite hack-ish. There are ways to have your cake and eat it too. I
wouldn't settle for 'bool empty{}'.
--------------------------------------------------
bool empty {
void set(auto value) { ... }
auto get() { ... }
}
empty = false; // empty.set(false)
auto b = empty; // auto b = empty.get()
--------------------------------------------------
for example, requires no hacks and no keywords. And has the added
advantage
that you can still use the getter and setter methods directly. To call
them
or get delegates from them.
I agree, this is a better solution!
I'd like to have an easy enough syntax for defining read-only properties
(often in my code). With the proposed syntax, one writes
bool empty { ... }
and calls it a day, but with the elaborate getters and setters there are
two scopes to get through:
bool empty { auto get() { ... } }
which is quite some aggravation.
Andrei