Index: third_party/boost/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp |
diff --git a/third_party/boost/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp b/third_party/boost/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..890a198a4641d9580d8865eae285774c45390762 |
--- /dev/null |
+++ b/third_party/boost/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp |
@@ -0,0 +1,229 @@ |
+ |
+// Copyright Aleksey Gurtovoy 2000-2004 |
+// |
+// Distributed under the Boost Software License, Version 1.0. |
+// (See accompanying file LICENSE_1_0.txt or copy at |
+// http://www.boost.org/LICENSE_1_0.txt) |
+// |
+ |
+// Preprocessed version of "boost/mpl/aux_/lambda_no_ctps.hpp" header |
+// -- DO NOT modify by hand! |
+ |
+namespace boost { namespace mpl { |
+ |
+namespace aux { |
+ |
+template< |
+ bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false |
+ , bool C5 = false |
+ > |
+struct lambda_or |
+ : true_ |
+{ |
+}; |
+ |
+template<> |
+struct lambda_or< false,false,false,false,false > |
+ : false_ |
+{ |
+}; |
+ |
+template< typename Arity > struct lambda_impl |
+{ |
+ template< typename T, typename Tag, typename Protect > struct result_ |
+ { |
+ typedef T type; |
+ typedef is_placeholder<T> is_le; |
+ }; |
+}; |
+ |
+template<> struct lambda_impl< int_<1> > |
+{ |
+ template< typename F, typename Tag, typename Protect > struct result_ |
+ { |
+ typedef lambda< typename F::arg1, Tag, false_ > l1; |
+ typedef typename l1::is_le is_le1; |
+ typedef aux::lambda_or< |
+ BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value |
+ > is_le; |
+ |
+ typedef bind1< |
+ typename F::rebind |
+ , typename l1::type |
+ > bind_; |
+ |
+ typedef typename if_< |
+ is_le |
+ , if_< Protect, mpl::protect<bind_>, bind_ > |
+ , identity<F> |
+ >::type type_; |
+ |
+ typedef typename type_::type type; |
+ }; |
+}; |
+ |
+template<> struct lambda_impl< int_<2> > |
+{ |
+ template< typename F, typename Tag, typename Protect > struct result_ |
+ { |
+ typedef lambda< typename F::arg1, Tag, false_ > l1; |
+ typedef lambda< typename F::arg2, Tag, false_ > l2; |
+ |
+ typedef typename l1::is_le is_le1; |
+ typedef typename l2::is_le is_le2; |
+ |
+ |
+ typedef aux::lambda_or< |
+ BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value |
+ > is_le; |
+ |
+ typedef bind2< |
+ typename F::rebind |
+ , typename l1::type, typename l2::type |
+ > bind_; |
+ |
+ typedef typename if_< |
+ is_le |
+ , if_< Protect, mpl::protect<bind_>, bind_ > |
+ , identity<F> |
+ >::type type_; |
+ |
+ typedef typename type_::type type; |
+ }; |
+}; |
+ |
+template<> struct lambda_impl< int_<3> > |
+{ |
+ template< typename F, typename Tag, typename Protect > struct result_ |
+ { |
+ typedef lambda< typename F::arg1, Tag, false_ > l1; |
+ typedef lambda< typename F::arg2, Tag, false_ > l2; |
+ typedef lambda< typename F::arg3, Tag, false_ > l3; |
+ |
+ typedef typename l1::is_le is_le1; |
+ typedef typename l2::is_le is_le2; |
+ typedef typename l3::is_le is_le3; |
+ |
+ |
+ typedef aux::lambda_or< |
+ BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value |
+ > is_le; |
+ |
+ typedef bind3< |
+ typename F::rebind |
+ , typename l1::type, typename l2::type, typename l3::type |
+ > bind_; |
+ |
+ typedef typename if_< |
+ is_le |
+ , if_< Protect, mpl::protect<bind_>, bind_ > |
+ , identity<F> |
+ >::type type_; |
+ |
+ typedef typename type_::type type; |
+ }; |
+}; |
+ |
+template<> struct lambda_impl< int_<4> > |
+{ |
+ template< typename F, typename Tag, typename Protect > struct result_ |
+ { |
+ typedef lambda< typename F::arg1, Tag, false_ > l1; |
+ typedef lambda< typename F::arg2, Tag, false_ > l2; |
+ typedef lambda< typename F::arg3, Tag, false_ > l3; |
+ typedef lambda< typename F::arg4, Tag, false_ > l4; |
+ |
+ typedef typename l1::is_le is_le1; |
+ typedef typename l2::is_le is_le2; |
+ typedef typename l3::is_le is_le3; |
+ typedef typename l4::is_le is_le4; |
+ |
+ |
+ typedef aux::lambda_or< |
+ BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value |
+ > is_le; |
+ |
+ typedef bind4< |
+ typename F::rebind |
+ , typename l1::type, typename l2::type, typename l3::type |
+ , typename l4::type |
+ > bind_; |
+ |
+ typedef typename if_< |
+ is_le |
+ , if_< Protect, mpl::protect<bind_>, bind_ > |
+ , identity<F> |
+ >::type type_; |
+ |
+ typedef typename type_::type type; |
+ }; |
+}; |
+ |
+template<> struct lambda_impl< int_<5> > |
+{ |
+ template< typename F, typename Tag, typename Protect > struct result_ |
+ { |
+ typedef lambda< typename F::arg1, Tag, false_ > l1; |
+ typedef lambda< typename F::arg2, Tag, false_ > l2; |
+ typedef lambda< typename F::arg3, Tag, false_ > l3; |
+ typedef lambda< typename F::arg4, Tag, false_ > l4; |
+ typedef lambda< typename F::arg5, Tag, false_ > l5; |
+ |
+ typedef typename l1::is_le is_le1; |
+ typedef typename l2::is_le is_le2; |
+ typedef typename l3::is_le is_le3; |
+ typedef typename l4::is_le is_le4; |
+ typedef typename l5::is_le is_le5; |
+ |
+ |
+ typedef aux::lambda_or< |
+ BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le3)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le4)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le5)::value |
+ > is_le; |
+ |
+ typedef bind5< |
+ typename F::rebind |
+ , typename l1::type, typename l2::type, typename l3::type |
+ , typename l4::type, typename l5::type |
+ > bind_; |
+ |
+ typedef typename if_< |
+ is_le |
+ , if_< Protect, mpl::protect<bind_>, bind_ > |
+ , identity<F> |
+ >::type type_; |
+ |
+ typedef typename type_::type type; |
+ }; |
+}; |
+ |
+} // namespace aux |
+ |
+template< |
+ typename T |
+ , typename Tag |
+ , typename Protect |
+ > |
+struct lambda |
+{ |
+ /// Metafunction forwarding confuses MSVC 6.x |
+ typedef typename aux::template_arity<T>::type arity_; |
+ typedef typename aux::lambda_impl<arity_> |
+ ::template result_< T,Tag,Protect > l_; |
+ |
+ typedef typename l_::type type; |
+ typedef typename l_::is_le is_le; |
+ BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect)) |
+}; |
+ |
+BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda) |
+ |
+template< |
+ typename T |
+ > |
+struct is_lambda_expression |
+ : lambda<T>::is_le |
+{ |
+}; |
+ |
+}} |
+ |