This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Proper and portable ways using manipulator
- From: Wei Qin <wqin at EE dot Princeton dot EDU>
- To: LLeweLLyn Reese <llewelly at lifesupport dot shutdown dot com>
- Cc: gcc-help at gcc dot gnu dot org
- Date: Fri, 8 Aug 2003 01:05:28 -0400 (EDT)
- Subject: Re: Proper and portable ways using manipulator
Hi, LLeweLLyn,
Thanks for the reply.
I tried <iomanip>, it works for g++3, but again not for g++2.
I grepped its g++-2 directory and the only showbase that I found is an enum.
So I now assume that there is no showbase manipulator in that library.
Is there any similar backward compatible way to use manipulators as
the hash_map one given at
http://gcc.gnu.org/onlinedocs/libstdc++/faq/#5_4
?
Wei
On 7 Aug 2003, LLeweLLyn Reese wrote:
> Wei Qin <wqin@EE.Princeton.EDU> writes:
>
> > Hi,
> > I used some manipulators in the form of
> >
> > #include <iostream>
> > #include <ios>
>
> Try:
> #include <iomanip>
>
> instead. (Note: I don't have 2.96 availible to test.)
>
> >
> > int main () {
> >
> > std::cout << std::showbase << std::hex << 100 << std::endl;
> > }
> >
> > This compiles fine with g++ 3.x. However, it fails on g++ 2.96
> > since it cannot find ios. When I remove ios, it cannot find showbase. Then
> > I change std::showbase to std::ios::showbase, but this showbase is not a
> > manipulator any more. As a result the program outputs 8064 instead of
> > 0x64.
> > So my question is: Is there any good coding practice to make sure
> > that the same code compiles for both and works as intended? Thanks.
>
> Compile every change with both compilers.
>