Update of /cvsroot/boost/boost/boost/fusion/sequence/view/zip_view/detail
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv25707/detail
Modified Files:
strictest_traversal.hpp
Log Message:
support for sequences weaker than Forward Sequence
Index: strictest_traversal.hpp
===================================================================
RCS file:
/cvsroot/boost/boost/boost/fusion/sequence/view/zip_view/detail/strictest_traversal.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- strictest_traversal.hpp 2 Mar 2007 10:44:13 -0000 1.2
+++ strictest_traversal.hpp 19 Mar 2007 18:13:24 -0000 1.3
@@ -15,7 +15,7 @@
#include <boost/fusion/sequence/intrinsic/mpl.hpp>
#include <boost/fusion/algorithm/iteration/fold.hpp>
#include <boost/type_traits/remove_reference.hpp>
-#include <boost/type_traits/is_same.hpp>
+#include <boost/type_traits/is_convertible.hpp>
namespace boost { namespace fusion {
@@ -25,6 +25,19 @@
namespace detail
{
+ template<typename Tag1, typename Tag2,
+ bool Tag1Stricter = boost::is_convertible<Tag2,Tag1>::value>
+ struct stricter_traversal
+ {
+ typedef Tag1 type;
+ };
+
+ template<typename Tag1, typename Tag2>
+ struct stricter_traversal<Tag1,Tag2,false>
+ {
+ typedef Tag2 type;
+ };
+
template<typename Next, typename StrictestSoFar>
struct strictest_traversal_impl
{
@@ -32,23 +45,7 @@
typedef typename traits::category_of<
typename remove_reference<Next>::type>::type tag2;
- typedef typename mpl::or_<
- is_same<tag1, fusion::forward_traversal_tag>,
- is_same<tag2, fusion::forward_traversal_tag> >::type
- has_forward_traversal;
-
- typedef typename mpl::or_<
- is_same<tag1, fusion::bidirectional_traversal_tag>,
- is_same<tag2, fusion::bidirectional_traversal_tag> >::type
- has_bidirectional_traversal;
-
- typedef typename mpl::if_<
- has_forward_traversal,
- forward_traversal_tag,
- typename mpl::if_<
- has_bidirectional_traversal,
- bidirectional_traversal_tag,
- random_access_traversal_tag>::type>::type type;
+ typedef typename stricter_traversal<tag1,tag2>::type type;
};
template<typename Sequence>
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs