comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <see.my.homepage@gmail.com>
Subject: Re: Containers - nontrivial element access
Date: Wed, 03 Oct 2007 12:48:39 -0700
Date: 2007-10-03T12:48:39-07:00	[thread overview]
Message-ID: <1191440919.716667.293720@g4g2000hsf.googlegroups.com> (raw)
In-Reply-To: <m23awsko0x.fsf@mac.com>

On 3 Pa , 21:15, Simon Wright <simon.j.wri...@mac.com> wrote:

> I'm no expert, but I would have expected C++ to distinguish given
>
>    struct Foo {
>       ...
>    };
>
> the three different functions
>
>    Foo return_by_value();
>    Foo* return_by_access();
>    Foo& return_by_reference();

Yes, it does distinguish them.
Note that first and third version are not distinguishable in syntax at
the call-site (except that only the third one allows to bind to non-
const references).

> I wonder what the difference between Foo* and Foo& is? I don't suppose
> there's any difference at the object code level? (except Foo* can be
> 0).

Foo* can be NULL, and there is no provision for anything at the object
code level.
Actually, this "level" is not relevant at all as far as the language
is concerned.

But in practical terms (standard aside), you can expect that Foo* and
Foo& will not differ at the object level, although things can get more
interesting when the calls are inlined.

--
Maciej Sobczak * www.msobczak.com * www.inspirel.com




  reply	other threads:[~2007-10-03 19:48 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-01 21:55 Containers - nontrivial element access Maciej Sobczak
2007-10-01 23:52 ` Alex R. Mosteo
2007-10-02 16:40   ` Matthew Heaney
2007-10-02 23:16     ` Alex R. Mosteo
2007-10-02 20:47   ` Maciej Sobczak
2007-10-02 23:23     ` Alex R. Mosteo
2007-10-02  0:39 ` Jeffrey R. Carter
2007-10-02 16:44   ` Matthew Heaney
2007-10-03  0:20     ` Jeffrey R. Carter
2007-10-03 19:40       ` Maciej Sobczak
2007-10-03 19:56         ` Matthew Heaney
2007-10-03 20:21           ` Dmitry A. Kazakov
2007-10-03 22:37             ` Matthew Heaney
2007-10-04  8:06               ` Dmitry A. Kazakov
2007-10-03 22:02         ` Jeffrey R. Carter
2007-10-04  0:16         ` Robert A Duff
2007-10-07  8:41           ` Jacob Sparre Andersen
2007-10-11 19:15             ` Robert A Duff
2007-10-14  4:59               ` Jacob Sparre Andersen
2007-10-14  7:24                 ` Dmitry A. Kazakov
2007-10-14 13:49                   ` Georg Bauhaus
2007-10-14 15:07                     ` Dmitry A. Kazakov
2007-10-02 20:50   ` Maciej Sobczak
2007-10-03  0:22     ` Jeffrey R. Carter
2007-10-03  8:26       ` Dmitry A. Kazakov
2007-10-03 18:49         ` Jeffrey R. Carter
2007-10-03 19:09           ` Matthew Heaney
2007-10-03 19:15           ` Simon Wright
2007-10-03 19:48             ` Maciej Sobczak [this message]
2007-10-03 19:58             ` Matthew Heaney
2007-10-03 19:35           ` Dmitry A. Kazakov
2007-10-02  2:34 ` Randy Brukardt
2007-10-02 16:47   ` Matthew Heaney
2007-10-02  7:23 ` Dmitry A. Kazakov
2007-10-02 16:37 ` Matthew Heaney
2007-10-02 21:02   ` Maciej Sobczak
2007-10-02 22:20     ` Matthew Heaney
2007-10-03 19:59       ` Maciej Sobczak
2007-10-03 22:55         ` Matthew Heaney
2007-10-04  0:22         ` Robert A Duff
2007-10-04 13:01         ` Georg Bauhaus
2007-10-04 14:01           ` Matthew Heaney
2007-10-04 21:58           ` Matthew Heaney
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox