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