On Monday, 19 November 2012 at 08:23:43 UTC, Jonathan M Davis wrote:
Which completely violates the concept of a property in the first place. It's intended to be an abstraction for a variable. Using @property just to get rid of parens would be like naming types with verbs instead of nouns. It's
completely backwards.

- Jonathan M Davis

I know what you are saying, but I know that most people will usually follow the path of least resistance, so if a lot of people really dislike typing in () all over the place and are given a way out, then they'll likely take it, so long as it won't matter in any significant way in terms of practicality.

Another case that I would say violates the property concept, is a getter property function that returns a non-const ref, and reusing the same property function as a setter (for cases where there's nothing to be done when setting). It is less work when you can get away with defining one property function that looks like two, even though it may be bad in some way, I expect it will be done often.

I suppose with @property enforcement in place, the compiler can be adjusted to prevent non-const ref return values for property getters. That would also make it a bit more difficult to specify @property just to get rid of typing ().

The big question is what do we gain and what do we lose from enforcements like this? It has to be worth doing, or it should not be done,

Personally, I think we're much better off not attempting to enforce coding style through restrictions that could be viewed as unnecessary.

--rt

Reply via email to