Boost.Range merge from trunk to release.

This is motivated by the need to correct the istream_range, to correct the adaptors.hpp header file, and correct the return types of various range algorithms.

[SVN r61517]
This commit is contained in:
Neil Groves
2010-04-23 22:50:56 +00:00
parent dfc30e334d
commit a47f15a98f
223 changed files with 2754 additions and 2666 deletions

View File

@ -36,16 +36,16 @@ namespace boost
return boost::find(cont, 3);
}
template<range_return_value return_type>
struct test_range
{
template<class Container, class Policy>
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy&, Container& cont)
{
return boost::find<return_type>(cont, 3);
}
};
template<range_return_value return_type>
struct test_range
{
template<class Container, class Policy>
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy&, Container& cont)
{
return boost::find<return_type>(cont, 3);
}
};
template<class Container>
BOOST_DEDUCED_TYPENAME range_iterator<Container>::type

View File

@ -35,7 +35,7 @@ namespace boost
{
}
container2_t cont() { return m_cont; }
container2_t cont() { return m_cont; }
template<class Container>
BOOST_DEDUCED_TYPENAME range_iterator<Container>::type
@ -45,14 +45,14 @@ namespace boost
}
template<range_return_value return_type>
struct test_range
{
template<class Container, class Policy>
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::find_end<return_type>(cont, policy.cont());
}
struct test_range
{
template<class Container, class Policy>
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::find_end<return_type>(cont, policy.cont());
}
};
template<class Container>
@ -77,8 +77,8 @@ namespace boost
{
}
container2_t& cont() { return m_cont; }
BinaryPredicate& pred() { return m_pred; }
container2_t& cont() { return m_cont; }
BinaryPredicate& pred() { return m_pred; }
template<class Container>
BOOST_DEDUCED_TYPENAME range_iterator<Container>::type
@ -88,14 +88,14 @@ namespace boost
}
template<range_return_value return_type>
struct test_range
{
template<class Container, class Policy>
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::find_end<return_type>(cont, policy.cont(), policy.pred());
}
struct test_range
{
template<class Container, class Policy>
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::find_end<return_type>(cont, policy.cont(), policy.pred());
}
};
template<class Container>

View File

@ -35,7 +35,7 @@ namespace boost
{
}
container2_t& cont() { return m_cont; }
container2_t& cont() { return m_cont; }
template<class Container>
BOOST_DEDUCED_TYPENAME range_iterator<Container>::type
@ -45,14 +45,14 @@ namespace boost
}
template<range_return_value return_type>
struct test_range
{
template<class Container, class Policy>
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::find_first_of<return_type>(cont, policy.cont());
}
struct test_range
{
template<class Container, class Policy>
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::find_first_of<return_type>(cont, policy.cont());
}
};
template<class Container>
@ -77,8 +77,8 @@ namespace boost
{
}
container2_t& cont() { return m_cont; }
BinaryPredicate& pred() { return m_pred; }
container2_t& cont() { return m_cont; }
BinaryPredicate& pred() { return m_pred; }
template<class Container>
BOOST_DEDUCED_TYPENAME range_iterator<Container>::type
@ -88,14 +88,14 @@ namespace boost
}
template<range_return_value return_type>
struct test_range
{
template<class Container, class Policy>
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::find_first_of<return_type>(cont, policy.cont(), policy.pred());
}
struct test_range
{
template<class Container, class Policy>
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::find_first_of<return_type>(cont, policy.cont(), policy.pred());
}
};
template<class Container>

View File

@ -41,15 +41,15 @@ namespace boost
return boost::find_if(cont, m_pred);
}
template<range_return_value return_type>
struct test_range
{
template<class Container>
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(find_if_test_policy& policy, Container& cont)
{
return boost::find_if<return_type>(cont, policy.pred());
}
template<range_return_value return_type>
struct test_range
{
template<class Container>
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(find_if_test_policy& policy, Container& cont)
{
return boost::find_if<return_type>(cont, policy.pred());
}
};
template<class Container>
@ -59,7 +59,7 @@ namespace boost
return std::find_if(cont.begin(), cont.end(), m_pred);
}
UnaryPredicate& pred() { return m_pred; }
UnaryPredicate& pred() { return m_pred; }
private:
UnaryPredicate m_pred;

View File

@ -83,4 +83,4 @@ init_unit_test_suite(int argc, char* argv[])
test->add( BOOST_TEST_CASE( &boost::test_for_each ) );
return test;
}
}

View File

@ -36,16 +36,16 @@ namespace boost
return boost::lower_bound(cont, 5);
}
template<range_return_value return_type>
struct test_range
{
template<class Container, class Policy>
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy&, Container& cont)
{
return boost::lower_bound<return_type>(cont, 5);
}
};
template<range_return_value return_type>
struct test_range
{
template<class Container, class Policy>
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy&, Container& cont)
{
return boost::lower_bound<return_type>(cont, 5);
}
};
template< class Container >
BOOST_DEDUCED_TYPENAME range_iterator<Container>::type
@ -66,15 +66,15 @@ namespace boost
}
template< range_return_value return_type >
struct test_range
{
template<class Container, class Policy>
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::lower_bound<return_type>(
cont, 5, policy.pred());
}
struct test_range
{
template<class Container, class Policy>
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::lower_bound<return_type>(
cont, 5, policy.pred());
}
};
template<class Container>
@ -85,10 +85,10 @@ namespace boost
cont.begin(), cont.end(), 5, m_pred);
}
BinaryPredicate& pred() { return m_pred; }
BinaryPredicate& pred() { return m_pred; }
private:
BinaryPredicate m_pred;
private:
BinaryPredicate m_pred;
};
template<class Container,

View File

@ -37,14 +37,14 @@ namespace boost
}
template<range_return_value return_type>
struct test_range
{
template<class Container, class Policy>
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy&, Container& cont)
{
return boost::max_element<return_type>(cont);
}
struct test_range
{
template<class Container, class Policy>
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy&, Container& cont)
{
return boost::max_element<return_type>(cont);
}
};
template< class Container >
@ -66,17 +66,17 @@ namespace boost
return boost::max_element(cont, Pred());
}
Pred pred() const { return Pred(); }
Pred pred() const { return Pred(); }
template< range_return_value return_type >
struct test_range
{
template< class Container, class Policy >
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::max_element<return_type>(cont, policy.pred());
}
struct test_range
{
template< class Container, class Policy >
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::max_element<return_type>(cont, policy.pred());
}
};
template< class Container >

View File

@ -37,14 +37,14 @@ namespace boost
}
template< range_return_value return_type >
struct test_range
{
template< class Container, class Policy >
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy&, Container& cont)
{
return boost::min_element<return_type>(cont);
}
struct test_range
{
template< class Container, class Policy >
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy&, Container& cont)
{
return boost::min_element<return_type>(cont);
}
};
template< class Container >
@ -66,17 +66,17 @@ namespace boost
return boost::min_element(cont, Pred());
}
Pred pred() const { return Pred(); }
Pred pred() const { return Pred(); }
template< range_return_value return_type >
struct test_range
{
template< class Container, class Policy >
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::min_element<return_type>(cont, policy.pred());
}
struct test_range
{
template< class Container, class Policy >
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::min_element<return_type>(cont, policy.pred());
}
};
template< class Container >

View File

@ -44,17 +44,17 @@ namespace boost
return boost::partition(cont, UnaryPredicate());
}
UnaryPredicate pred() const { return UnaryPredicate(); }
UnaryPredicate pred() const { return UnaryPredicate(); }
template< range_return_value return_type >
struct test_range
{
template< class Container, class Policy >
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::partition<return_type>(cont, policy.pred());
}
struct test_range
{
template< class Container, class Policy >
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::partition<return_type>(cont, policy.pred());
}
};
template< class Container >

View File

@ -44,17 +44,17 @@ namespace boost
return boost::stable_partition(cont, UnaryPredicate());
}
UnaryPredicate pred() const { return UnaryPredicate(); }
UnaryPredicate pred() const { return UnaryPredicate(); }
template< range_return_value return_type >
struct test_range
{
template< class Container, class Policy >
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::stable_partition<return_type>(cont, policy.pred());
}
struct test_range
{
template< class Container, class Policy >
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::stable_partition<return_type>(cont, policy.pred());
}
};
template< class Container >

View File

@ -41,14 +41,14 @@ namespace boost
}
template< range_return_value return_type >
struct test_range
{
template< class Container, class Policy >
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy&, Container& cont)
{
return boost::unique<return_type>(cont);
}
struct test_range
{
template< class Container, class Policy >
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy&, Container& cont)
{
return boost::unique<return_type>(cont);
}
};
template< class Container >
@ -73,17 +73,17 @@ namespace boost
return std::unique(cont.begin(), cont.end(), Pred());
}
Pred pred() const { return Pred(); }
Pred pred() const { return Pred(); }
template< range_return_value return_type >
struct test_range
{
template< class Container, class Policy >
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::unique<return_type>(cont, policy.pred());
}
struct test_range
{
template< class Container, class Policy >
BOOST_DEDUCED_TYPENAME range_return<Container,return_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::unique<return_type>(cont, policy.pred());
}
};
template< class Container >

View File

@ -35,16 +35,16 @@ namespace boost
return boost::upper_bound(cont, 5);
}
template<range_return_value result_type>
struct test_range
{
template<class Container, class Policy>
BOOST_DEDUCED_TYPENAME range_return<Container,result_type>::type
operator()(Policy&, Container& cont)
{
return boost::upper_bound<result_type>(cont, 5);
}
};
template<range_return_value result_type>
struct test_range
{
template<class Container, class Policy>
BOOST_DEDUCED_TYPENAME range_return<Container,result_type>::type
operator()(Policy&, Container& cont)
{
return boost::upper_bound<result_type>(cont, 5);
}
};
template< class Container >
BOOST_DEDUCED_TYPENAME range_iterator<Container>::type
@ -65,15 +65,15 @@ namespace boost
}
template< range_return_value result_type>
struct test_range
{
template< class Container, class Policy >
BOOST_DEDUCED_TYPENAME range_return<Container,result_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::upper_bound<result_type>(
cont, 5, policy.pred());
}
struct test_range
{
template< class Container, class Policy >
BOOST_DEDUCED_TYPENAME range_return<Container,result_type>::type
operator()(Policy& policy, Container& cont)
{
return boost::upper_bound<result_type>(
cont, 5, policy.pred());
}
};
template<class Container>
@ -83,11 +83,11 @@ namespace boost
return std::upper_bound(
cont.begin(), cont.end(), 5, BinaryPredicate());
}
BinaryPredicate& pred() { return m_pred; }
private:
BinaryPredicate m_pred;
BinaryPredicate& pred() { return m_pred; }
private:
BinaryPredicate m_pred;
};
template<class Container,