Michiel Helvensteijn 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. > > -- > Michiel Helvensteijn >
I think I like this version better than using 'bool var{}' (the var= looks ok IMO, though). Apparently very similar to the C# approach too (which is shorter, but uses an implicit variable): public int humanAge { get { return age; } set { age = value; } }