logo       

Re: segmented fusion - a-ha!: msg#00079

parsers.spirit.devel

Subject: Re: segmented fusion - a-ha!

Joel de Guzman wrote:
Eric Niebler wrote:

Joel de Guzman wrote:
Eric Niebler wrote:

Joel, I've got a nice little pile of segmented Fusion code now. Perhaps we should have a branch for it. What do you think?

Wouldn't it be better if we simply tag the branch and just add on
top of the current FUSION_V2 branch? We'll need to do some
post review tweaks there so, I anticipate lots of changes to
the code that will likely cause lots of conflicts with your
branch. Thoughts?


I'm a bit concerned about what happens when Fusion gets accepted. Chances are, the segmentataion support will only be half implemented when it comes time to check Fusion into Boost main CVS. Rather than inflict a half-baked thing on everyone, we'll probably want the segmentation support on a branch. That's why I think I should do my stuff on a separate branch now. I can deal with the merge conflicts later.

Ok, understood. Feel free to add a branch.


I'm in need of a stable branch point. Looks like you've been applying changes as a result of the review, and there is at least one problem. You've added some references to the non-existent "detail::tag_of". This should be "traits::tag_of". Patch attached. OK to commit?

--
Eric Niebler
Boost Consulting
www.boost-consulting.com
? traits_tag_of.patch.txt
Index: iterator/advance.hpp
===================================================================
RCS file: /cvsroot/spirit/spirit/boost/fusion/iterator/Attic/advance.hpp,v
retrieving revision 1.1.2.13
diff -b -d -u -r1.1.2.13 advance.hpp
--- iterator/advance.hpp 15 May 2006 15:15:32 -0000 1.1.2.13
+++ iterator/advance.hpp 17 May 2006 06:37:16 -0000
@@ -44,12 +44,12 @@
{
template <typename Iterator, int N>
struct advance_c
- : extension::advance_impl<typename
detail::tag_of<Iterator>::type>::template apply<Iterator, mpl::int_<N> >
+ : extension::advance_impl<typename
traits::tag_of<Iterator>::type>::template apply<Iterator, mpl::int_<N> >
{};

template <typename Iterator, typename N>
struct advance
- : extension::advance_impl<typename
detail::tag_of<Iterator>::type>::template apply<Iterator, N>
+ : extension::advance_impl<typename
traits::tag_of<Iterator>::type>::template apply<Iterator, N>
{};
}

Index: iterator/deref.hpp
===================================================================
RCS file: /cvsroot/spirit/spirit/boost/fusion/iterator/Attic/deref.hpp,v
retrieving revision 1.1.2.9
diff -b -d -u -r1.1.2.9 deref.hpp
--- iterator/deref.hpp 15 May 2006 15:15:32 -0000 1.1.2.9
+++ iterator/deref.hpp 17 May 2006 06:37:16 -0000
@@ -27,7 +27,7 @@
{
template <typename Iterator>
struct deref
- : extension::deref_impl<typename detail::tag_of<Iterator>::type>::
+ : extension::deref_impl<typename traits::tag_of<Iterator>::type>::
template apply<Iterator>
{};
}
Index: iterator/distance.hpp
===================================================================
RCS file: /cvsroot/spirit/spirit/boost/fusion/iterator/Attic/distance.hpp,v
retrieving revision 1.1.2.12
diff -b -d -u -r1.1.2.12 distance.hpp
--- iterator/distance.hpp 15 May 2006 15:15:32 -0000 1.1.2.12
+++ iterator/distance.hpp 17 May 2006 06:37:16 -0000
@@ -42,7 +42,7 @@
{
template <typename First, typename Last>
struct distance
- : extension::distance_impl<typename detail::tag_of<First>::type>::
+ : extension::distance_impl<typename traits::tag_of<First>::type>::
template apply<First, Last>
{};
}
Index: iterator/equal_to.hpp
===================================================================
RCS file: /cvsroot/spirit/spirit/boost/fusion/iterator/Attic/equal_to.hpp,v
retrieving revision 1.1.2.13
diff -b -d -u -r1.1.2.13 equal_to.hpp
--- iterator/equal_to.hpp 15 May 2006 15:15:32 -0000 1.1.2.13
+++ iterator/equal_to.hpp 17 May 2006 06:37:16 -0000
@@ -34,7 +34,7 @@
{
template <typename I1, typename I2>
struct equal_to
- : extension::equal_to_impl<typename detail::tag_of<I1>::type>::
+ : extension::equal_to_impl<typename traits::tag_of<I1>::type>::
template apply<I1, I2>
{};
}
Index: iterator/next.hpp
===================================================================
RCS file: /cvsroot/spirit/spirit/boost/fusion/iterator/Attic/next.hpp,v
retrieving revision 1.1.2.9
diff -b -d -u -r1.1.2.9 next.hpp
--- iterator/next.hpp 15 May 2006 15:15:32 -0000 1.1.2.9
+++ iterator/next.hpp 17 May 2006 06:37:16 -0000
@@ -26,7 +26,7 @@
{
template <typename Iterator>
struct next
- : extension::next_impl<typename detail::tag_of<Iterator>::type>::
+ : extension::next_impl<typename traits::tag_of<Iterator>::type>::
template apply<Iterator>
{};
}
Index: iterator/prior.hpp
===================================================================
RCS file: /cvsroot/spirit/spirit/boost/fusion/iterator/Attic/prior.hpp,v
retrieving revision 1.1.2.9
diff -b -d -u -r1.1.2.9 prior.hpp
--- iterator/prior.hpp 15 May 2006 15:15:32 -0000 1.1.2.9
+++ iterator/prior.hpp 17 May 2006 06:37:16 -0000
@@ -26,7 +26,7 @@
{
template <typename Iterator>
struct prior
- : extension::prior_impl<typename detail::tag_of<Iterator>::type>::
+ : extension::prior_impl<typename traits::tag_of<Iterator>::type>::
template apply<Iterator>
{};
}
Index: iterator/value_of.hpp
===================================================================
RCS file: /cvsroot/spirit/spirit/boost/fusion/iterator/Attic/value_of.hpp,v
retrieving revision 1.1.2.10
diff -b -d -u -r1.1.2.10 value_of.hpp
--- iterator/value_of.hpp 15 May 2006 15:15:32 -0000 1.1.2.10
+++ iterator/value_of.hpp 17 May 2006 06:37:16 -0000
@@ -27,7 +27,7 @@
{
template <typename Iterator>
struct value_of
- : extension::value_of_impl<typename
detail::tag_of<Iterator>::type>::
+ : extension::value_of_impl<typename
traits::tag_of<Iterator>::type>::
template apply<Iterator>
{};
}
<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise