On 26.12.2021 11:50, Michael Van Canneyt via fpc-devel wrote:
Please explain what's the point or benefit of this.

Do you mean "in general", or "specifically to FPC"?

A) In general: I reckon that the article covers the matter quite well; I have 
nothing to add.
B) Specifically for FPC: it is up to the users to decide whether they find this 
useful; I am impartial.

Personally for me, specifically for FPC, the points are:
1) A variant of that patch is already a part of the Closures -- it makes sense to expose 
that to the users and get another feature (Functors) for "half the price";
2) Orthogonality -- I would rather implement a proper feature instead of employing a 
specific "hack" for a single case (translating an interface reference into a 
call).

As I see it, it's just shorthand syntax to allow skipping the name 'Invoke'.
None of what is shown below cannot be handled by ordinary methods

Well, yes. But, following your reasoning, the same should be said about overloading most 
of the operators: "why is aC+aD better than aC.Add(aD)"?

I find the resulting code aC(33) more confusing than anything else

It should be less confusing if you think of aC as a routine (which is the point 
of Functors). Would aCallback(33) look less confusing?

I think the idea is overly complicated and can be achieved simply by the 
mechanism used by default array properties:
    function Add9(const N: Integer): Integer; default;

That could be an alternative /syntax/ for denoting the special method, but I do not see 
how that would "uncomplicate" the /idea/. To me, that is exactly the same idea 
with the same level of complication.

Likewise, conceptually, "default array properties" /is/ "operator []" with a 
clunkier syntax and a benefit of being able to access such property by name.

I think the idea of using a fixed member identifier for special purposes is 
really stupid design.

I would agree in general, but you did see that using the OPERATOR keyword is 
part of the proposal, right?
"operator Add" is not necessarily worse than "operator +".

--
βþ
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to