From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Martin v. Loewis" To: girod@stybba.ntc.nokia.com Cc: oliva@dcc.unicamp.br, egcs@egcs.cygnus.com Subject: Re: virtual inheritance: optimization for empty objects Date: Wed, 31 Mar 1999 23:46:00 -0000 Message-ID: <199903141946.UAA09213@mira.isdn.cs.tu-berlin.de> References: <1yk8wjdhf7.fsf@sinkku.ntc.nokia.com> X-SW-Source: 1999-03n/msg00485.html Message-ID: <19990331234600.yhGw9mJAQuQYtbiebCdRrmPe6vkogOwZ5wHeYqqieME@z> > foo.C:36: `cout' undeclared in namespace `std' > foo.C:46: `endl' undeclared in namespace `std' > > I used std::cout and std::endl. I works without -fnew-abi. > > I guess I need to rebuild the libstdc++, or what exactly should I > rebuild?... You need much more than that ... you need to rewrite libstdc++. With -fnew-abi, std is a namespace. So if cout is not in namespace std (which it isn't in libstdc++ v2), it is an error to refer to it via std::cout. You can try arrange libstdc++ to use it consistently, either by putting the library in std::, or by removing the extra qualifiers. As an alternative, you could try libstdc++ v3, which gets this right. Regards, Martin