fix use of incomplete fusion::nil as caught by clang

[SVN r74019]
This commit is contained in:
Eric Niebler
2011-08-23 15:13:30 +00:00
parent def510808d
commit df6017dc1c
4 changed files with 31 additions and 46 deletions

View File

@ -22,19 +22,19 @@ namespace boost { namespace fusion { namespace detail
// return make_segmented_iterator( segmented_begin_impl( seq, nil ) );
//}
template <typename Sequence>
template <typename Sequence, typename Nil = fusion::nil>
struct segmented_begin
{
typedef
segmented_iterator<
typename segmented_begin_impl<Sequence, fusion::nil>::type
typename segmented_begin_impl<Sequence, Nil>::type
>
type;
static type call(Sequence& seq)
{
return type(
segmented_begin_impl<Sequence, fusion::nil>::call(seq, fusion::nil()));
segmented_begin_impl<Sequence, Nil>::call(seq, Nil()));
}
};

View File

@ -7,9 +7,9 @@
#if !defined(BOOST_FUSION_SEGMENTED_END_HPP_INCLUDED)
#define BOOST_FUSION_SEGMENTED_END_HPP_INCLUDED
#include <boost/fusion/container/list/cons_fwd.hpp>
#include <boost/fusion/sequence/intrinsic/detail/segmented_end_impl.hpp>
#include <boost/fusion/iterator/segmented_iterator.hpp>
#include <boost/fusion/container/list/cons.hpp>
namespace boost { namespace fusion { namespace detail
{
@ -18,19 +18,19 @@ namespace boost { namespace fusion { namespace detail
// return make_segmented_iterator( segmented_end_impl( seq ) );
//}
template <typename Sequence>
template <typename Sequence, typename Nil = fusion::nil>
struct segmented_end
{
typedef
segmented_iterator<
typename segmented_end_impl<Sequence, fusion::nil>::type
typename segmented_end_impl<Sequence, Nil>::type
>
type;
static type call(Sequence & seq)
{
return type(
segmented_end_impl<Sequence, fusion::nil>::call(seq, fusion::nil()));
segmented_end_impl<Sequence, Nil>::call(seq, Nil()));
}
};