Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #11721

Re: extern const reference

From jt@toerring.de (Jens Thoms Toerring)
Newsgroups comp.lang.c++
Subject Re: extern const reference
Date 2011-11-22 20:53 +0000
Organization Freie Universitaet Berlin
Message-ID <9j2gdgFfvmU1@mid.uni-berlin.de> (permalink)
References <65256071-1753-479b-a9ea-39079aded9c1@j10g2000vbe.googlegroups.com>

Show all headers | View raw


Igor R. <igor.rubinov@gmail.com> wrote:
> I've got the following code:

> int main()
> {
>         const extern int &ref;
>         {
>                 int var = 5;
>                 const int &ref = var;
>         }
>         int var = ref;
> }

> I.e., I'd like to define and initialize a const ref in a local scope,
> but want to *declare* and to be able to use it in the outer scope. I
> attempt to declare it as extern, but this doesn't link well, i.e.
> "const int &ref = var;" isn't interpreted as the above extern
> definition, but as another local variable.
> Is it possible to do the above trick somehow? (I know I can
> restructure the code as the last resort.)

If you could do that in the sense you seem to want it to
work the last line would involve undefined behaviour since
you then would be using use a reference to a variable that
already has gone out of scope. What you seem to try to get
to work looks very similar to me to e.g.

int const & get_var( )
{
     int v = 5;
	 return v;
}

int main( )
{
    int const & ref = get_var( );
    int var = ref;
}

And that, of course, doesn't work since the moment the
get_var() function is left nothing remains of its local
variable 'v', so holding on to a reference to it doesn't
make sense.

What is what you're trying to do meant to be good for? Per-
haps there's something that can be done but it's not really
clear to me what you want to achieve.

                            Regards, Jens
-- 
  \   Jens Thoms Toerring  ___      jt@toerring.de
   \__________________________      http://toerring.de

Back to comp.lang.c++ | Previous | Next — Previous in thread | Find similar | Unroll thread


Thread

extern const reference "Igor R." <igor.rubinov@gmail.com> - 2011-11-22 11:47 -0800
  Re: extern const reference "Alf P. Steinbach" <alf.p.steinbach+usenet@gmail.com> - 2011-11-22 21:22 +0100
  Re: extern const reference jt@toerring.de (Jens Thoms Toerring) - 2011-11-22 20:53 +0000

csiph-web