BVB Source Codes

mars Show lambda_no_ctps.hpp Source code

Return Download mars: download lambda_no_ctps.hpp Source code - Download mars Source code - Type:.hpp
  1.  
  2. // Copyright Aleksey Gurtovoy 2000-2004
  3. //
  4. // Distributed under the Boost Software License, Version 1.0.
  5. // (See accompanying file LICENSE_1_0.txt or copy at
  6. // http://www.boost.org/LICENSE_1_0.txt)
  7. //
  8.  
  9. // *Preprocessed* version of the main "lambda_no_ctps.hpp" header
  10. // -- DO NOT modify by hand!
  11.  
  12. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost { namespace mpl {
  13.  
  14. namespace aux {
  15.  
  16. template<
  17.       bool C1 = false, bool C2 = false, bool C3 = false, bool C4 = false
  18.     , bool C5 = false
  19.     >
  20. struct lambda_or
  21.     : true_
  22. {
  23. };
  24.  
  25. template<>
  26. struct lambda_or< false,false,false,false,false >
  27.     : false_
  28. {
  29. };
  30.  
  31. template< typename Arity > struct lambda_impl
  32. {
  33.     template< typename T, typename Tag, typename Protect > struct result_
  34.     {
  35.         typedef T type;
  36.         typedef is_placeholder<T> is_le;
  37.     };
  38. };
  39.  
  40. template<> struct lambda_impl< int_<1> >
  41. {
  42.     template< typename F, typename Tag, typename Protect > struct result_
  43.     {
  44.         typedef lambda< typename F::arg1, Tag, false_ > l1;
  45.         typedef typename l1::is_le is_le1;
  46.         typedef aux::lambda_or<
  47.               BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value
  48.             > is_le;
  49.  
  50.         typedef bind1<
  51.               typename F::rebind
  52.             , typename l1::type
  53.             > bind_;
  54.  
  55.         typedef typename if_<
  56.               is_le
  57.             , if_< Protect, mpl::protect<bind_>, bind_ >
  58.             , identity<F>
  59.             >::type type_;
  60.  
  61.         typedef typename type_::type type;
  62.     };
  63. };
  64.  
  65. template<> struct lambda_impl< int_<2> >
  66. {
  67.     template< typename F, typename Tag, typename Protect > struct result_
  68.     {
  69.         typedef lambda< typename F::arg1, Tag, false_ > l1;
  70.         typedef lambda< typename F::arg2, Tag, false_ > l2;
  71.        
  72.         typedef typename l1::is_le is_le1;
  73.         typedef typename l2::is_le is_le2;
  74.        
  75.  
  76.         typedef aux::lambda_or<
  77.               BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le1)::value, BOOST_MPL_AUX_MSVC_VALUE_WKND(is_le2)::value
  78.             > is_le;
  79.  
  80.         typedef bind2<
  81.               typename F::rebind
  82.             , typename l1::type, typename l2::type
  83.             > bind_;
  84.  
  85.         typedef typename if_<
  86.               is_le
  87.             , if_< Protect, mpl::protect<bind_>, bind_ >
  88.             , identity<F>
  89.             >::type type_;
  90.  
  91.         typedef typename type_::type type;
  92.     };
  93. };
  94.  
  95. template<> struct lambda_impl< int_<3> >
  96. {
  97.     template< typename F, typename Tag, typename Protect > struct result_
  98.     {
  99.         typedef lambda< typename F::arg1, Tag, false_ > l1;
  100.         typedef lambda< typename F::arg2, Tag, false_ > l2;
  101.         typedef lambda< typename F::arg3, Tag, false_ > l3;
  102.        
  103.         typedef typename l1::is_le is_le1;
  104.         typedef typename l2::is_le is_le2;
  105.         typedef typename l3::is_le is_le3;
  106.        
  107.  
  108.         typedef aux::lambda_or<
  109.               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
  110.             > is_le;
  111.  
  112.         typedef bind3<
  113.               typename F::rebind
  114.             , typename l1::type, typename l2::type, typename l3::type
  115.             > bind_;
  116.  
  117.         typedef typename if_<
  118.               is_le
  119.             , if_< Protect, mpl::protect<bind_>, bind_ >
  120.             , identity<F>
  121.             >::type type_;
  122.  
  123.         typedef typename type_::type type;
  124.     };
  125. };
  126.  
  127. template<> struct lambda_impl< int_<4> >
  128. {
  129.     template< typename F, typename Tag, typename Protect > struct result_
  130.     {
  131.         typedef lambda< typename F::arg1, Tag, false_ > l1;
  132.         typedef lambda< typename F::arg2, Tag, false_ > l2;
  133.         typedef lambda< typename F::arg3, Tag, false_ > l3;
  134.         typedef lambda< typename F::arg4, Tag, false_ > l4;
  135.        
  136.         typedef typename l1::is_le is_le1;
  137.         typedef typename l2::is_le is_le2;
  138.         typedef typename l3::is_le is_le3;
  139.         typedef typename l4::is_le is_le4;
  140.        
  141.  
  142.         typedef aux::lambda_or<
  143.               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
  144.             > is_le;
  145.  
  146.         typedef bind4<
  147.               typename F::rebind
  148.             , typename l1::type, typename l2::type, typename l3::type
  149.             , typename l4::type
  150.             > bind_;
  151.  
  152.         typedef typename if_<
  153.               is_le
  154.             , if_< Protect, mpl::protect<bind_>, bind_ >
  155.             , identity<F>
  156.             >::type type_;
  157.  
  158.         typedef typename type_::type type;
  159.     };
  160. };
  161.  
  162. template<> struct lambda_impl< int_<5> >
  163. {
  164.     template< typename F, typename Tag, typename Protect > struct result_
  165.     {
  166.         typedef lambda< typename F::arg1, Tag, false_ > l1;
  167.         typedef lambda< typename F::arg2, Tag, false_ > l2;
  168.         typedef lambda< typename F::arg3, Tag, false_ > l3;
  169.         typedef lambda< typename F::arg4, Tag, false_ > l4;
  170.         typedef lambda< typename F::arg5, Tag, false_ > l5;
  171.        
  172.         typedef typename l1::is_le is_le1;
  173.         typedef typename l2::is_le is_le2;
  174.         typedef typename l3::is_le is_le3;
  175.         typedef typename l4::is_le is_le4;
  176.         typedef typename l5::is_le is_le5;
  177.        
  178.  
  179.         typedef aux::lambda_or<
  180.               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
  181.             > is_le;
  182.  
  183.         typedef bind5<
  184.               typename F::rebind
  185.             , typename l1::type, typename l2::type, typename l3::type
  186.             , typename l4::type, typename l5::type
  187.             > bind_;
  188.  
  189.         typedef typename if_<
  190.               is_le
  191.             , if_< Protect, mpl::protect<bind_>, bind_ >
  192.             , identity<F>
  193.             >::type type_;
  194.  
  195.         typedef typename type_::type type;
  196.     };
  197. };
  198.  
  199. } // namespace aux
  200.  
  201. template<
  202.       typename T
  203.     , typename Tag
  204.     , typename Protect
  205.     >
  206. struct lambda
  207. {
  208.     /// Metafunction forwarding confuses MSVC 6.x
  209.     typedef typename aux::template_arity<T>::type arity_;
  210.     typedef typename aux::lambda_impl<arity_>
  211.         ::template result_< T,Tag,Protect > l_;
  212.  
  213.     typedef typename l_::type type;
  214.     typedef typename l_::is_le is_le;
  215.     BOOST_MPL_AUX_LAMBDA_SUPPORT(3, lambda, (T, Tag, Protect))
  216. };
  217.  
  218. BOOST_MPL_AUX_NA_SPEC2(1, 3, lambda)
  219.  
  220. template<
  221.       typename T
  222.     >
  223. struct is_lambda_expression
  224.     : lambda<T>::is_le
  225. {
  226. };
  227.  
  228. }}
  229.  
  230.  
downloadlambda_no_ctps.hpp Source code - Download mars Source code
Related Source Codes/Software:
Hero - Elegant transition library for iOS & tvOS 2017-06-09
deep-photo-styletransfer - Code and data for paper "Deep Photo Style Transfer... 2017-06-09
mastodon - A GNU Social-compatible microblogging server ... 2017-06-09
plyr - A simple HTML5, YouTube and Vimeo player ... 2017-06-08
prepack - Prepack is a partial evaluator for JavaScript. Pre... 2017-06-08
Public-APIs - 2017-06-09
lottie-ios - An iOS library to natively render After Effects ve... 2017-06-09
Awesome-Hacking - A collection of various awesome lists for hackers,... 2017-06-09
algorithms - Minimal examples of data structures and algorithms... 2017-06-10
lectures - Oxford Deep NLP 2017 course 2017-06-10
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top