[fpc-devel] Optimizing unused return values of inline functions

Sven Barth pascaldragon at googlemail.com
Tue Aug 22 14:28:47 CEST 2017


Am 22.08.2017 13:15 schrieb "Michael Van Canneyt" <michael at freepascal.org>:
>
>
>
> On Tue, 22 Aug 2017, Thaddy de Koning wrote:
>
>>> On 21.08.2017 13:22, Michael Van Canneyt wrote:
>>>>
>>>>
>>>>
>>>> On Mon, 21 Aug 2017, Benito van der Zander wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>>> This pattern is not inherently efficient. Why should it be ?
>>>>>
>>>>>
>>>>>
>>>>> It is not efficient, because of the pointless instruction!
>>>>
>>>>
>>>> I am not speaking of the current FPC implementation. It may well be
that
>>>> the
>>>> code is not most optimal.
>>>>
>>>> I am asking, why do you think *this pattern* (of always returning self)
>>>> should be inherently more efficient ?
>>>
>>>
>>> The pattern definitely has its uses. E.g. in the user space of our
>>> operating system at work we have a StdOutPrinter class that is used like
>>> this:
>>>
>>> === code begin ===
>>>
>>> StdIO::stdOutPrinter()->out("Helllo World ")->out(42)->out("
>>> ")->hex()->out(42)->line();
>
>
> Call me old-fashioned, but I much prefer
>
>   With StdIO::stdOutPrinter() do
>     begin
>     out("Helllo World ");
>     out(42);
>     out("");
>     hex();
>     out(42);
>     line();
>     end;
>
> I see no point or gain in the "fluent" code.

First C++ has no with-statement and second I definitely prefer my output to
be on one line. :)
Also in other cases fluent interfaces are rather nice to have.
Though they also don't force you to be used in that way :) (at least if
they really only return Self/This).

Regards,
Sven
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20170822/603050fa/attachment.html>


More information about the fpc-devel mailing list