"Michel Fortin" <michel.for...@michelf.com> wrote in message news:ikum9a$2agj$1...@digitalmars.com... > On 2011-03-05 18:42:26 -0500, dsimcha <dsim...@yahoo.com> said: > >> This is an extreme corner case, especially if a one-way semantic >> @property syntax is available to work around it. The percentage of >> functions that return callables is very small, and of these the >> percentage that would forget @property is probably very small. I'd >> rather bug-proneness in a ridiculous corner case than breaking tons of >> existing code code and losing a nice feature in the common case. > > The percentage of functions that return a callable is very small until you > go to template land. I can easily make a container or a range of > delegates, and if someone somewhere forgot to make 'front' a property in > the container, in the container's range or in one of the filter range > layered on top of it, then writing 'front()' to call the front delegate > becomes unreliable. Is it a corner case? Yes. Is it ridiculous to expect > the language to detect rare but hard to find bugs? No. Is it worth it in > this case? I think so. >
Along those lines, I'll point out that the idea of a range of delegates is not a stretch at all: it could make a lot of sense for a GUI API, for instance. The .NET windowing API handles callbacks as collections of delegates and I always thought that worked fairly well (and seems functionally equivalent to Qt's system of signals and slots, AIUI).