Update of /cvsroot/boost/boost/boost/xpressive/proto
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv22331
Modified Files:
proto_fwd.hpp traits.hpp
Log Message:
fix construct transform, add pod_construct
Index: proto_fwd.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/xpressive/proto/proto_fwd.hpp,v
retrieving revision 1.86
retrieving revision 1.87
diff -u -d -r1.86 -r1.87
--- proto_fwd.hpp 6 Jul 2007 08:54:43 -0000 1.86
+++ proto_fwd.hpp 9 Jul 2007 18:11:17 -0000 1.87
@@ -534,6 +534,9 @@
template<typename Grammar, typename ConstructorFun>
struct construct;
+
+ template<typename Grammar, typename ConstructorFun>
+ struct pod_construct;
}
namespace has_transformns_
@@ -551,6 +554,9 @@
using has_transformns_::has_pass_through_transform;
template<typename T>
+ struct is_transform;
+
+ template<typename T>
struct is_extension;
namespace exops
Index: traits.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/xpressive/proto/traits.hpp,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -d -r1.63 -r1.64
--- traits.hpp 6 Jul 2007 08:54:43 -0000 1.63
+++ traits.hpp 9 Jul 2007 18:11:17 -0000 1.64
@@ -56,6 +56,15 @@
namespace boost { namespace proto
{
+ template<typename T>
+ struct is_transform
+ : mpl::false_
+ {};
+
+ template<>
+ struct is_transform<proto::_>
+ : mpl::true_
+ {};
namespace result_of
{
@@ -173,7 +182,6 @@
struct right
: unref<typename Expr::proto_arg1>
{};
-
}
namespace detail
@@ -237,29 +245,29 @@
typedef U proto_arg1;
};
- #define BOOST_PROTO_UNARY_GENERATOR(Name)\
- template<typename T>\
- struct Name : has_pass_through_transform<Name<T> >\
- {\
- Name();\
- typedef expr<proto::tag::Name, args1<T> > type;\
- typedef type proto_base_expr;\
- typedef proto::tag::Name proto_tag;\
- typedef T proto_arg0;\
- };\
+ #define BOOST_PROTO_UNARY_GENERATOR(Name)
\
+ template<typename T>
\
+ struct Name : has_pass_through_transform<Name<T> >
\
+ {
\
+ Name();
\
+ typedef expr<proto::tag::Name, args1<T> > type;
\
+ typedef type proto_base_expr;
\
+ typedef proto::tag::Name proto_tag;
\
+ typedef T proto_arg0;
\
+ };
\
/**/
- #define BOOST_PROTO_BINARY_GENERATOR(Name)\
- template<typename T, typename U>\
- struct Name : has_pass_through_transform<Name<T, U> >\
- {\
- Name();\
- typedef expr<proto::tag::Name, args2<T, U> > type;\
- typedef type proto_base_expr;\
- typedef proto::tag::Name proto_tag;\
- typedef T proto_arg0;\
- typedef U proto_arg1;\
- };\
+ #define BOOST_PROTO_BINARY_GENERATOR(Name)
\
+ template<typename T, typename U>
\
+ struct Name : has_pass_through_transform<Name<T, U> >
\
+ {
\
+ Name();
\
+ typedef expr<proto::tag::Name, args2<T, U> > type;
\
+ typedef type proto_base_expr;
\
+ typedef proto::tag::Name proto_tag;
\
+ typedef T proto_arg0;
\
+ typedef U proto_arg1;
\
+ };
\
/**/
BOOST_PROTO_UNARY_GENERATOR(posit)
@@ -306,12 +314,12 @@
BOOST_PROTO_BINARY_GENERATOR(bitwise_or_assign)
BOOST_PROTO_BINARY_GENERATOR(bitwise_xor_assign)
BOOST_PROTO_BINARY_GENERATOR(subscript)
+
+ } // namespace op
#undef BOOST_PROTO_UNARY_GENERATOR
#undef BOOST_PROTO_BINARY_GENERATOR
- } // namespace op
-
#define BOOST_PROTO_ARG(z, n, data)\
typedef BOOST_PP_CAT(data, n) BOOST_PP_CAT(proto_arg, n);\
/**/
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs