To be clear...I'm not trying to subvert anything! Just to make it easier and more natural to choose the best option. :) if it wasn't clear from my example, AbstractFoo would NOT be a concrete type, and couldn't be constructed.
On Tuesday, September 13, 2016, Michael Borregaard <mkborrega...@gmail.com> wrote: > Thanks for the enlightening discussion. The emerging consensus is to use > example #2, but perhaps use macros to make the syntax easier to read and > maintain. Alternatively, it looks like my idea with having a FoobarData > object as a field would do the job (but would require > foobar.foobardata.bazbaz syntax for accessing fields, of course). > > It is also interesting to see that there are divergent views. It seems to > me, for example, that Tom Breloff's macro syntax would subvert the > inheritance design decision that Stefan Karpinski described, by combining > the abstract type with the concrete type? >