Boost logo

Boost Users :

From: Eelis van der Weegen (boost-users_at_[hidden])
Date: 2004-02-23 21:58:41


Hi,

I defined the following operator to stream optional<char>'s:

   std::ostream &
     operator<< (std::ostream & os, boost::optional<char> const & op)
   {
     if (op) os << *op; else os << '_';
     return os;
   }

Now, when I use:

   boost::optional<char> a ('a');
   std::cout << a;

'a' is printed like I expected. However, when I use:

   std::ostream_iterator<boost::optional<char> > oi (std::cout);
   *oi = a;

'1' is printed and my operator is apparently ignored (I expected another
'a'). Is this a gcc (3.2.3) issue or a boost issue? And in any case: is
there a workaround?

Thanks,

Eelis


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net