Re: Is it ok to refer to a member of a const reference on the right side of the assignment?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/20/2010 12:20 AM, Patrick Horgan wrote:
> This gives a seg fault on the access to the model member of op, since at
> that point the &op is 0.
> 
>                    const
>                    operand&    op = (*top->operands).select(0, op.model);
> 
> 
> Should this work?  Can you refer on the right side of the assignment to
> the const reference?

You aren't asking the right question. It doesn't matter whether 'op' is
a const reference, a regular pointer, or something else... if you
reference it before it has been initialized, you will get undefined
behavior.

I'm actually surprised the compiler will even compile this, but I guess
since C/C++ define that local variables are in scope in the entire block
in which they are declared, this is allowed... even though it can't work
properly.

-- 
Kevin P. Fleming
Digium, Inc. | Director of Software Technologies
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
skype: kpfleming | jabber: kfleming@xxxxxxxxxx
Check us out at www.digium.com & www.asterisk.org


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux