Boost logo

Boost Users :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2004-02-24 07:09:17


Eelis van der Weegen wrote:
> 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?

Neither. Your operator<< definition should be in namespace boost.


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