initialization of non-const reference
llewelly@edevnull.com
llewelly@edevnull.com
Fri Sep 22 20:57:00 GMT 2000
Sjoerd Adema <sjoerd@axy.nl> writes:
> Hi,
>
> I am in big trouble :-(
>
> My databasesoftware contains the following code:
>
> class genericObj {
> ...
> public:
> genericObj( ..., const SetObj& set );
> ...
> };
>
> class myObj : public genericObj {
> ...
> public:
> myObj() : genericObj(..., SetObj() ) {}
> ...
> };
Please supply a complete example; the ...s you obscure
the problem.
With gcc 2.95.2, the following compiles with no errors:
struct Foo
{};
struct Base
{
Base(Foo const& c):i(c){}
Foo i;
};
struct Derived:Base
{
Derived(Foo const& c)
:Base(c){}
};
int main()
{
Derived d(Foo());
}
>
> when I compile the sourcecode I get the compiler error: initialization
> of non-const reference type `class SetObj &`
>
> Bjarne Stroustrup tells in his book section 10.4.10 "A temporary can be
> used as an initializer for a CONST reference or a named object."
>
> Tons of code is written like this, so it is a huge problem for me.
>
> Am I missing something here ?
Yes - an example sufficient to reproduce the bug. :-)
> I use Suse Linux 6.4 with gcc 2.95-2
>
> Any help would be highly appreciated.
>
Thank you for your bug report.
More information about the Gcc
mailing list