ftp.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1992/11/04/21:23:38

To: djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: iostreams (iomanip.h)
From: david nugent <david AT csource DOT oz DOT au>
Reply-To: david AT csource DOT oz DOT au
Date: Thu, 05 Nov 92 11:27:56 +1000
Organization: Unique Computing Pty Ltd, Melbourne, Australia

  -- x.cc --
  # include <iostream.h>
  # include <iomanip.h>

  void
  main (void)
  {
      cout << "Hex number: " << hex << 102 << endl;
  }
  -- end --

This outputs:

Hex number: 0x66

The "0x" is inserted gratuitously, and in error - it shouldn't be. The
reasons are obvious once you start playing with widths, justification
and fill in ios.  I'm not sure if this is a gnu lib problem or is
specific to the djgpp library but I'll report it here in case it is
only dj's. I've used two other c++ compilers which don't exhibit this
behaviour (sorry, I don't yet have the AT&T iostreams reference to
state definitely what is or is not the "correct" behaviour).

This is with v1.09, but it was the same with 1.08.

I also notice that iomanip.h defines "IOMANIPdeclare(T)" as an empty
macro. Is this because gcc doesn't yet support templates well enough
for it to work? (I recently noticed that libg++ supplied a basically
blank file, I guess for the same reason) I'm currently using a macro
version, slightly hacked from MicroSoft C/C++'s include directory
which seems to work fine.

david



Smoke me a kipper, Skipper - I'll be back for breakfast! - "Ace" Rimmer
david AT csource DOT oz DOT au 3:632/348 AT fidonet 58:4100/1 AT intlnet 199:4242/5 AT rainbownet
Unique Computing P/L / Communications+LAN Specialists / Public Access USENET
PO Box 352, Doveton, VIC, Aust 3144. Data/BBS: +61-3-792-3507 / +61-3-794-7949

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019