usability tweaks: functions that return iterators return them as *const* to allow chaining when the recipient function expects a reference (e.g. foo(Iter&) )

[SVN r35940]
This commit is contained in:
Joel de Guzman
2006-11-09 01:48:46 +00:00
parent 4b061d2716
commit c621277c07
7 changed files with 11 additions and 11 deletions

View File

@ -56,7 +56,7 @@ namespace boost { namespace fusion
lazy_disable_if< lazy_disable_if<
is_const<Sequence> is_const<Sequence>
, result_of::find<Sequence, T> , result_of::find<Sequence, T>
>::type >::type const
find(Sequence& seq) find(Sequence& seq)
{ {
typedef typename result_of::find<Sequence, T>::filter filter; typedef typename result_of::find<Sequence, T>::filter filter;
@ -64,7 +64,7 @@ namespace boost { namespace fusion
} }
template <typename T, typename Sequence> template <typename T, typename Sequence>
inline typename result_of::find<Sequence const, T>::type inline typename result_of::find<Sequence const, T>::type const
find(Sequence const& seq) find(Sequence const& seq)
{ {
typedef typename result_of::find<Sequence const, T>::filter filter; typedef typename result_of::find<Sequence const, T>::filter filter;

View File

@ -51,7 +51,7 @@ namespace boost { namespace fusion
} }
template <typename Pred, typename Sequence> template <typename Pred, typename Sequence>
inline typename result_of::find_if<Sequence const, Pred>::type inline typename result_of::find_if<Sequence const, Pred>::type const
find_if(Sequence const& seq) find_if(Sequence const& seq)
{ {
typedef typedef

View File

@ -75,14 +75,14 @@ namespace boost { namespace fusion
} }
template <int N, typename Iterator> template <int N, typename Iterator>
inline typename result_of::advance_c<Iterator, N>::type inline typename result_of::advance_c<Iterator, N>::type const
advance_c(Iterator const& i) advance_c(Iterator const& i)
{ {
return result_of::advance_c<Iterator, N>::call(i); return result_of::advance_c<Iterator, N>::call(i);
} }
template<typename N, typename Iterator> template<typename N, typename Iterator>
inline typename result_of::advance<Iterator, N>::type inline typename result_of::advance<Iterator, N>::type const
advance(Iterator const& i) advance(Iterator const& i)
{ {
return result_of::advance<Iterator, N>::call(i); return result_of::advance<Iterator, N>::call(i);

View File

@ -54,7 +54,7 @@ namespace boost { namespace fusion
} }
template <typename Iterator> template <typename Iterator>
typename result_of::next<Iterator>::type typename result_of::next<Iterator>::type const
next(Iterator const& i) next(Iterator const& i)
{ {
return result_of::next<Iterator>::call(i); return result_of::next<Iterator>::call(i);

View File

@ -54,7 +54,7 @@ namespace boost { namespace fusion
} }
template <typename Iterator> template <typename Iterator>
typename result_of::prior<Iterator>::type typename result_of::prior<Iterator>::type const
prior(Iterator const& i) prior(Iterator const& i)
{ {
return result_of::prior<Iterator>::call(i); return result_of::prior<Iterator>::call(i);

View File

@ -58,14 +58,14 @@ namespace boost { namespace fusion
} }
template <typename Sequence> template <typename Sequence>
inline typename result_of::begin<Sequence>::type inline typename result_of::begin<Sequence>::type const
begin(Sequence& seq) begin(Sequence& seq)
{ {
return result_of::begin<Sequence>::call(seq); return result_of::begin<Sequence>::call(seq);
} }
template <typename Sequence> template <typename Sequence>
inline typename result_of::begin<Sequence const>::type inline typename result_of::begin<Sequence const>::type const
begin(Sequence const& seq) begin(Sequence const& seq)
{ {
return result_of::begin<Sequence const>::call(seq); return result_of::begin<Sequence const>::call(seq);

View File

@ -58,14 +58,14 @@ namespace boost { namespace fusion
} }
template <typename Sequence> template <typename Sequence>
inline typename result_of::end<Sequence>::type inline typename result_of::end<Sequence>::type const
end(Sequence& seq) end(Sequence& seq)
{ {
return result_of::end<Sequence>::call(seq); return result_of::end<Sequence>::call(seq);
} }
template <typename Sequence> template <typename Sequence>
inline typename result_of::end<Sequence const>::type inline typename result_of::end<Sequence const>::type const
end(Sequence const& seq) end(Sequence const& seq)
{ {
return result_of::end<Sequence const>::call(seq); return result_of::end<Sequence const>::call(seq);