Update of /cvsroot/boost/boost/boost/fusion/sequence/intrinsic
In directory 
sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv5882/boost/fusion/sequence/intrinsic

Modified Files:
        at.hpp at_key.hpp begin.hpp empty.hpp end.hpp has_key.hpp 
        size.hpp value_at.hpp value_at_key.hpp 
Log Message:
prelude to iterator_facade and sequence_facade

Index: at.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/fusion/sequence/intrinsic/at.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- at.hpp      22 Sep 2006 13:39:27 -0000      1.2
+++ at.hpp      25 Sep 2006 08:36:33 -0000      1.3
@@ -15,6 +15,8 @@
 
 namespace boost { namespace fusion
 {
+    // Special tags:
+    struct sequence_facade_tag;
     struct array_tag; // boost::array tag
     struct mpl_sequence_tag; // mpl sequence tag
     struct std_pair_tag; // std::pair tag
@@ -29,6 +31,13 @@
         };
 
         template <>
+        struct at_impl<sequence_facade_tag>
+        {
+            template <typename Sequence, typename N>
+            struct apply : Sequence::template at<Sequence, N> {};
+        };
+
+        template <>
         struct at_impl<array_tag>;
 
         template <>

Index: at_key.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/fusion/sequence/intrinsic/at_key.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- at_key.hpp  22 Sep 2006 13:39:27 -0000      1.2
+++ at_key.hpp  25 Sep 2006 08:36:33 -0000      1.3
@@ -15,6 +15,8 @@
 
 namespace boost { namespace fusion
 {
+    // Special tags:
+    struct sequence_facade_tag;
     struct array_tag; // boost::array tag
     struct mpl_sequence_tag; // mpl sequence tag
     struct std_pair_tag; // std::pair tag
@@ -29,6 +31,13 @@
         };
 
         template <>
+        struct at_key_impl<sequence_facade_tag>
+        {
+            template <typename Sequence, typename Key>
+            struct apply : Sequence::template at_key<Sequence, Key> {};
+        };
+
+        template <>
         struct at_key_impl<array_tag>;
 
         template <>

Index: begin.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/fusion/sequence/intrinsic/begin.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- begin.hpp   22 Sep 2006 13:39:27 -0000      1.2
+++ begin.hpp   25 Sep 2006 08:36:33 -0000      1.3
@@ -12,7 +12,8 @@
 
 namespace boost { namespace fusion
 {
-    struct fusion_sequence_tag;
+    // Special tags:
+    struct sequence_facade_tag; // iterator facade tag
     struct array_tag; // boost::array tag
     struct mpl_sequence_tag; // mpl sequence tag
     struct std_pair_tag; // std::pair tag
@@ -27,6 +28,13 @@
         };
 
         template <>
+        struct begin_impl<sequence_facade_tag>
+        {
+            template <typename Sequence>
+            struct apply : Sequence::template begin<Sequence> {};
+        };
+
+        template <>
         struct begin_impl<array_tag>;
 
         template <>

Index: empty.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/fusion/sequence/intrinsic/empty.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- empty.hpp   22 Sep 2006 13:39:27 -0000      1.3
+++ empty.hpp   25 Sep 2006 08:36:33 -0000      1.4
@@ -14,7 +14,8 @@
 
 namespace boost { namespace fusion
 {
-    struct fusion_sequence_tag;
+    // Special tags:
+    struct sequence_facade_tag;
     struct mpl_sequence_tag; // mpl sequence tag
 
     namespace extension
@@ -29,6 +30,13 @@
         };
 
         template <>
+        struct empty_impl<sequence_facade_tag>
+        {
+            template <typename Sequence>
+            struct apply : Sequence::template empty<Sequence> {};
+        };
+
+        template <>
         struct empty_impl<mpl_sequence_tag>;
     }
 

Index: end.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/fusion/sequence/intrinsic/end.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- end.hpp     22 Sep 2006 13:39:27 -0000      1.2
+++ end.hpp     25 Sep 2006 08:36:33 -0000      1.3
@@ -12,7 +12,8 @@
 
 namespace boost { namespace fusion
 {
-    struct fusion_sequence_tag;
+    // Special tags:
+    struct sequence_facade_tag;
     struct array_tag; // boost::array tag
     struct mpl_sequence_tag; // mpl sequence tag
     struct std_pair_tag; // std::pair tag
@@ -27,6 +28,13 @@
         };
 
         template <>
+        struct end_impl<sequence_facade_tag>
+        {
+            template <typename Sequence>
+            struct apply : Sequence::template end<Sequence> {};
+        };
+
+        template <>
         struct end_impl<array_tag>;
 
         template <>

Index: has_key.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/fusion/sequence/intrinsic/has_key.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- has_key.hpp 22 Sep 2006 13:39:27 -0000      1.3
+++ has_key.hpp 25 Sep 2006 08:36:33 -0000      1.4
@@ -15,7 +15,9 @@
 namespace boost { namespace fusion
 {
     struct void_;
-    struct fusion_sequence_tag;
+
+    // Special tags:
+    struct sequence_facade_tag;
     struct array_tag; // boost::array tag
     struct mpl_sequence_tag; // mpl sequence tag
     struct std_pair_tag; // std::pair tag
@@ -33,6 +35,13 @@
         };
 
         template <>
+        struct has_key_impl<sequence_facade_tag>
+        {
+            template <typename Sequence, typename Key>
+            struct apply : Sequence::template has_key<Sequence, Key> {};
+        };
+
+        template <>
         struct has_key_impl<array_tag>;
 
         template <>

Index: size.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/fusion/sequence/intrinsic/size.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- size.hpp    22 Sep 2006 13:39:27 -0000      1.3
+++ size.hpp    25 Sep 2006 08:36:33 -0000      1.4
@@ -13,7 +13,11 @@
 
 namespace boost { namespace fusion
 {
-    struct fusion_sequence_tag;
+    // Special tags:
+    struct sequence_facade_tag;
+    struct array_tag; // boost::array tag
+    struct mpl_sequence_tag; // mpl sequence tag
+    struct std_pair_tag; // std::pair tag
 
     namespace extension
     {
@@ -25,6 +29,13 @@
         };
 
         template <>
+        struct size_impl<sequence_facade_tag>
+        {
+            template <typename Sequence>
+            struct apply : Sequence::template size<Sequence> {};
+        };
+ 
+        template <>
         struct size_impl<array_tag>;
 
         template <>

Index: value_at.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/fusion/sequence/intrinsic/value_at.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- value_at.hpp        22 Sep 2006 13:39:27 -0000      1.2
+++ value_at.hpp        25 Sep 2006 08:36:33 -0000      1.3
@@ -13,6 +13,8 @@
 
 namespace boost { namespace fusion
 {
+    // Special tags:
+    struct sequence_facade_tag;
     struct array_tag; // boost::array tag
     struct mpl_sequence_tag; // mpl sequence tag
     struct std_pair_tag; // std::pair tag
@@ -27,6 +29,13 @@
         };
 
         template <>
+        struct value_at_impl<sequence_facade_tag>
+        {
+            template <typename Sequence, typename N>
+            struct apply : Sequence::template value_at<Sequence, N> {};
+        };
+
+        template <>
         struct value_at_impl<array_tag>;
 
         template <>

Index: value_at_key.hpp
===================================================================
RCS file: 
/cvsroot/boost/boost/boost/fusion/sequence/intrinsic/value_at_key.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- value_at_key.hpp    22 Sep 2006 13:39:27 -0000      1.2
+++ value_at_key.hpp    25 Sep 2006 08:36:33 -0000      1.3
@@ -14,6 +14,8 @@
 
 namespace boost { namespace fusion
 {
+    // Special tags:
+    struct sequence_facade_tag;
     struct array_tag; // boost::array tag
     struct mpl_sequence_tag; // mpl sequence tag
     struct std_pair_tag; // std::pair tag
@@ -23,11 +25,18 @@
         template <typename Tag>
         struct value_at_key_impl
         {
-            template <typename Sequence, typename N>
+            template <typename Sequence, typename Key>
             struct apply;
         };
 
         template <>
+        struct value_at_key_impl<sequence_facade_tag>
+        {
+            template <typename Sequence, typename Key>
+            struct apply : Sequence::template value_at_key<Sequence, Key> {};
+        };
+
+        template <>
         struct value_at_key_impl<array_tag>;
 
         template <>


-------------------------------------------------------------------------
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

Reply via email to