$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r51368 - in branches/release: boost/lambda/detail libs/lambda/test
From: steven_at_[hidden]
Date: 2009-02-21 13:10:20
Author: steven_watanabe
Date: 2009-02-21 13:10:20 EST (Sat, 21 Feb 2009)
New Revision: 51368
URL: http://svn.boost.org/trac/boost/changeset/51368
Log:
Merge [50516] and [50999] from the trunk. These are the fixes for #781 and #2446 respectively
Text files modified: 
   branches/release/boost/lambda/detail/operator_return_type_traits.hpp |    35 +++++++++++++++++++++++++++++++++++     
   branches/release/boost/lambda/detail/operators.hpp                   |    26 +++++++++++++-------------              
   branches/release/libs/lambda/test/Jamfile                            |     2 +-                                      
   3 files changed, 49 insertions(+), 14 deletions(-)
Modified: branches/release/boost/lambda/detail/operator_return_type_traits.hpp
==============================================================================
--- branches/release/boost/lambda/detail/operator_return_type_traits.hpp	(original)
+++ branches/release/boost/lambda/detail/operator_return_type_traits.hpp	2009-02-21 13:10:20 EST (Sat, 21 Feb 2009)
@@ -933,6 +933,41 @@
   typedef typename std::basic_string<Char, Traits, Allocator>::const_reference type;
 };
 
+template<class Char, class Traits, class Allocator> 
+struct plain_return_type_2<arithmetic_action<plus_action>,
+                           std::basic_string<Char, Traits, Allocator>,
+                           std::basic_string<Char, Traits, Allocator> > { 
+  typedef std::basic_string<Char, Traits, Allocator> type;
+};
+
+template<class Char, class Traits, class Allocator> 
+struct plain_return_type_2<arithmetic_action<plus_action>,
+                           const Char*,
+                           std::basic_string<Char, Traits, Allocator> > { 
+  typedef std::basic_string<Char, Traits, Allocator> type;
+};
+
+template<class Char, class Traits, class Allocator> 
+struct plain_return_type_2<arithmetic_action<plus_action>,
+                           std::basic_string<Char, Traits, Allocator>,
+                           const Char*> { 
+  typedef std::basic_string<Char, Traits, Allocator> type;
+};
+
+template<class Char, class Traits, class Allocator, std::size_t N> 
+struct plain_return_type_2<arithmetic_action<plus_action>,
+                           Char[N],
+                           std::basic_string<Char, Traits, Allocator> > { 
+  typedef std::basic_string<Char, Traits, Allocator> type;
+};
+
+template<class Char, class Traits, class Allocator, std::size_t N> 
+struct plain_return_type_2<arithmetic_action<plus_action>,
+                           std::basic_string<Char, Traits, Allocator>,
+                           Char[N]> { 
+  typedef std::basic_string<Char, Traits, Allocator> type;
+};
+
 
 } // namespace lambda
 } // namespace boost
Modified: branches/release/boost/lambda/detail/operators.hpp
==============================================================================
--- branches/release/boost/lambda/detail/operators.hpp	(original)
+++ branches/release/boost/lambda/detail/operators.hpp	2009-02-21 13:10:20 EST (Sat, 21 Feb 2009)
@@ -258,17 +258,17 @@
 #error "Multiple defines of  BOOST_LAMBDA_PTR_ARITHMETIC_E1"
 #endif
 
-#define BOOST_LAMBDA_PTR_ARITHMETIC_E1(OPER_NAME, ACTION, CONSTB)            \
+#define BOOST_LAMBDA_PTR_ARITHMETIC_E1(OPER_NAME, ACTION, CONSTB)           \
 template<class Arg, int N, class B>                                         \
 inline const                                                                \
 lambda_functor<                                                             \
-  lambda_functor_base<ACTION, tuple<lambda_functor<Arg>, CONSTB(&)[N]> >   \
+  lambda_functor_base<ACTION, tuple<lambda_functor<Arg>, CONSTB(&)[N]> >    \
 >                                                                           \
-OPER_NAME (const lambda_functor<Arg>& a, CONSTB(&b)[N])                    \
+OPER_NAME (const lambda_functor<Arg>& a, CONSTB(&b)[N])                     \
 {                                                                           \
-  return lambda_functor<                                                    \
-    lambda_functor_base<ACTION, tuple<lambda_functor<Arg>, CONSTB(&)[N]> > \
-  >(tuple<lambda_functor<Arg>, CONSTB(&)[N]>(a, b));                       \
+  return                                                                    \
+    lambda_functor_base<ACTION, tuple<lambda_functor<Arg>, CONSTB(&)[N]> >  \
+  (tuple<lambda_functor<Arg>, CONSTB(&)[N]>(a, b));                         \
 }
 
 
@@ -276,15 +276,15 @@
 #error "Multiple defines of  BOOST_LAMBDA_PTR_ARITHMETIC_E2"
 #endif
 
-#define BOOST_LAMBDA_PTR_ARITHMETIC_E2(OPER_NAME, ACTION, CONSTA)             \
-template<int N, class A, class Arg>                                          \
-inline const                                                                 \
-lambda_functor<                                                              \
+#define BOOST_LAMBDA_PTR_ARITHMETIC_E2(OPER_NAME, ACTION, CONSTA)           \
+template<int N, class A, class Arg>                                         \
+inline const                                                                \
+lambda_functor<                                                             \
   lambda_functor_base<ACTION, tuple<CONSTA(&)[N], lambda_functor<Arg> > >   \
->                                                                            \
+>                                                                           \
 OPER_NAME (CONSTA(&a)[N], const lambda_functor<Arg>& b)                     \
-{                                                                            \
-  return                                                                     \
+{                                                                           \
+  return                                                                    \
     lambda_functor_base<ACTION, tuple<CONSTA(&)[N], lambda_functor<Arg> > > \
     (tuple<CONSTA(&)[N], lambda_functor<Arg> >(a, b));                      \
 }
Modified: branches/release/libs/lambda/test/Jamfile
==============================================================================
--- branches/release/libs/lambda/test/Jamfile	(original)
+++ branches/release/libs/lambda/test/Jamfile	2009-02-21 13:10:20 EST (Sat, 21 Feb 2009)
@@ -11,7 +11,7 @@
 import testing ;
 
 project 
-  : requirements <library>/boost/test//boost_test_exec_monitor
+  : requirements <toolset>msvc:<asynch-exceptions>on
   ;
           
 test-suite lambda