|
Boost : |
Subject: [boost] [RangeEx] Using istream_range?
From: Robert Jones (robertgbjones_at_[hidden])
Date: 2008-10-21 03:54:32
Hi All
I'd really appreciate an example of the use of istream_range from the
Boost.Range library.
I tried this
#include <iostream>
#include <iterator>
#include "boost/range.hpp"
#include "boost/range/istream_range.hpp"
#include "boost/range/algorithm.hpp"
void f( int i )
{
std :: cout << i << std :: endl;
}
int main( )
{
typedef std :: istream_iterator< int > in;
boost :: for_each( boost :: istream_range< in >( std :: cin ), f );
return 0;
}
and other variations, but I don't think any of them are right! Do I really
have to specify three template type parameters? The signature of the
template is
namespace boost
{
template<class Type, class Elem, class Traits> inline
range<std::istream_iterator<Type, Elem, Traits> >
istream_range(std::basic_istream<Elem, Traits>& in)
{
return range<std::istream_iterator<Type, Elem, Traits> >(
std::istream_iterator<Elem>(in),
std::istream_iterator<Elem>());
}
}
Thanks, Rob.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk