Boost logo

Boost Users :

From: Kevin Wheatley (hxpro_at_[hidden])
Date: 2005-02-04 12:47:09


Richard_Cox_at_[hidden] wrote:
>
> The program below outputs
>
> String: <First string> Second string> Fourth string> Fifth string>
>
> All but the first "<" is missing. Any ideas?
> std::for_each(coll.begin(), coll.end(), out << gt << _1 << L"> ");

does this work?

std::for_each(coll.begin(), coll.end(), out << var(gt) << _1 << L">
");

not sure of the fix, but out << gt associates left to right and is
evaluated once and has the type of out, you want it lazy evaluated so
that the whole of the expression is considered as one... see the
delaying constants and variables section of the lambda documents.

Kevin

-- 
| Kevin Wheatley, Cinesite (Europe) Ltd | Nobody thinks this      |
| Senior Technology                     | My employer for certain |
| And Network Systems Architect         | Not even myself         |

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