Update of /cvsroot/boost/boost/boost/xpressive/proto
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv26750/proto
Modified Files:
traits.hpp
Log Message:
bug fixes, work-arounds
Index: traits.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/xpressive/proto/traits.hpp,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -d -r1.54 -r1.55
--- traits.hpp 26 May 2007 00:53:57 -0000 1.54
+++ traits.hpp 31 May 2007 16:13:06 -0000 1.55
@@ -28,11 +28,14 @@
#include <boost/mpl/if.hpp>
#include <boost/mpl/or.hpp>
#include <boost/mpl/bool.hpp>
+ #include <boost/mpl/eval_if.hpp>
#include <boost/static_assert.hpp>
#include <boost/utility/result_of.hpp>
#include <boost/type_traits/is_array.hpp>
#include <boost/type_traits/is_function.hpp>
+ #include <boost/type_traits/remove_cv.hpp>
#include <boost/type_traits/remove_const.hpp>
+ #include <boost/type_traits/add_reference.hpp>
#include <boost/xpressive/proto/proto_fwd.hpp>
#include <boost/xpressive/proto/ref.hpp>
#include <boost/xpressive/proto/args.hpp>
@@ -84,10 +87,10 @@
template<typename T, typename Domain, typename EnableIf>
struct as_expr
{
- typedef typename mpl::if_<
+ typedef typename mpl::eval_if<
mpl::or_<BOOST_PROTO_IS_ARRAY_(T), is_function<T> >
- , T &
- , typename remove_cv<T>::type
+ , add_reference<T>
+ , remove_cv<T>
>::type arg0_type;
typedef expr<proto::tag::terminal, args1<arg0_type> >
expr_type;
@@ -331,6 +334,22 @@
{
return result_of::as_expr<T const, Domain>::call(t);
}
+
+ #if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
+ template<typename T, std::size_t N_>
+ typename result_of::as_expr<T(&)[N_], Domain>::result_type
+ operator ()(T (&t)[N_]) const
+ {
+ return result_of::as_expr<T(&)[N_], Domain>::call(t);
+ }
+
+ template<typename T, std::size_t N_>
+ typename result_of::as_expr<T const(&)[N_],
Domain>::result_type
+ operator ()(T const (&t)[N_]) const
+ {
+ return result_of::as_expr<T const(&)[N_], Domain>::call(t);
+ }
+ #endif
};
template<typename Domain>
-------------------------------------------------------------------------
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