Boost logo

Boost-Commit :

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


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk