BVB Source Codes

mars Show basic_bind.hpp Source code

Return Download mars: download basic_bind.hpp Source code - Download mars Source code - Type:.hpp
  1.  
  2. // Copyright Peter Dimov 2001
  3. // Copyright Aleksey Gurtovoy 2001-2004
  4. //
  5. // Distributed under the Boost Software License, Version 1.0.
  6. // (See accompanying file LICENSE_1_0.txt or copy at
  7. // http://www.boost.org/LICENSE_1_0.txt)
  8. //
  9.  
  10. // Preprocessed version of "boost/mpl/aux_/basic_bind.hpp" header
  11. // -- DO NOT modify by hand!
  12.  
  13. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost { namespace mpl {
  14.  
  15. namespace aux {
  16. template< bool >
  17. struct resolve_arg_impl
  18. {
  19.     template<
  20.           typename T, typename U1, typename U2, typename U3
  21.         , typename U4, typename U5
  22.         >
  23.     struct result_
  24.     {
  25.         typedef T type;
  26.     };
  27. };
  28.  
  29. template<>
  30. struct resolve_arg_impl<true>
  31. {
  32.     template<
  33.           typename T, typename U1, typename U2, typename U3
  34.         , typename U4, typename U5
  35.         >
  36.     struct result_
  37.     {
  38.         typedef typename apply_wrap5<
  39.               T
  40.             , U1, U2, U3, U4, U5
  41.             >::type type;
  42.     };
  43. };
  44.  
  45. template< typename T > struct is_bind_template;
  46.  
  47. template<
  48.       typename T, typename U1, typename U2, typename U3, typename U4
  49.     , typename U5
  50.     >
  51. struct resolve_bind_arg
  52.     : resolve_arg_impl< is_bind_template<T>::value >
  53.             ::template result_< T,U1,U2,U3,U4,U5 >
  54. {
  55. };
  56.  
  57. template< int arity_ > struct bind_chooser;
  58.  
  59. aux::no_tag is_bind_helper(...);
  60. template< typename T > aux::no_tag is_bind_helper(protect<T>*);
  61.  
  62. template< int N >
  63. aux::yes_tag is_bind_helper(arg<N>*);
  64.  
  65. template< bool is_ref_  = true >
  66. struct is_bind_template_impl
  67. {
  68.     template< typename T > struct result_
  69.     {
  70.         BOOST_STATIC_CONSTANT(bool, value  = false);
  71.     };
  72. };
  73.  
  74. template<>
  75. struct is_bind_template_impl<false>
  76. {
  77.     template< typename T > struct result_
  78.     {
  79.         BOOST_STATIC_CONSTANT(bool, value =
  80.               sizeof(aux::is_bind_helper(static_cast<T*>(0)))
  81.                 == sizeof(aux::yes_tag)
  82.             );
  83.     };
  84. };
  85.  
  86. template< typename T > struct is_bind_template
  87.     : is_bind_template_impl< ::mars_boost::detail::is_reference_impl<T>::value >
  88.         ::template result_<T>
  89. {
  90. };
  91.  
  92. } // namespace aux
  93.  
  94. template<
  95.       typename F
  96.     >
  97. struct bind0
  98. {
  99.     template<
  100.           typename U1 = na, typename U2 = na, typename U3 = na
  101.         , typename U4 = na, typename U5 = na
  102.         >
  103.     struct apply
  104.     {
  105.      private:
  106.         typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
  107.  
  108.      public:
  109.         typedef typename apply_wrap0<
  110.               f_
  111.             >::type type;
  112.  
  113.     };
  114. };
  115.  
  116. namespace aux {
  117.  
  118. template<
  119.       typename F
  120.     >
  121. aux::yes_tag
  122. is_bind_helper(bind0<F>*);
  123.  
  124. } // namespace aux
  125.  
  126. BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
  127. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
  128.  
  129. template<
  130.       typename F, typename T1
  131.     >
  132. struct bind1
  133. {
  134.     template<
  135.           typename U1 = na, typename U2 = na, typename U3 = na
  136.         , typename U4 = na, typename U5 = na
  137.         >
  138.     struct apply
  139.     {
  140.      private:
  141.         typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
  142.         typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
  143.  
  144.      public:
  145.         typedef typename apply_wrap1<
  146.               f_
  147.             , typename t1::type
  148.             >::type type;
  149.  
  150.     };
  151. };
  152.  
  153. namespace aux {
  154.  
  155. template<
  156.       typename F, typename T1
  157.     >
  158. aux::yes_tag
  159. is_bind_helper(bind1< F,T1 >*);
  160.  
  161. } // namespace aux
  162.  
  163. BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
  164. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
  165.  
  166. template<
  167.       typename F, typename T1, typename T2
  168.     >
  169. struct bind2
  170. {
  171.     template<
  172.           typename U1 = na, typename U2 = na, typename U3 = na
  173.         , typename U4 = na, typename U5 = na
  174.         >
  175.     struct apply
  176.     {
  177.      private:
  178.         typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
  179.         typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
  180.         typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
  181.  
  182.      public:
  183.         typedef typename apply_wrap2<
  184.               f_
  185.             , typename t1::type, typename t2::type
  186.             >::type type;
  187.  
  188.     };
  189. };
  190.  
  191. namespace aux {
  192.  
  193. template<
  194.       typename F, typename T1, typename T2
  195.     >
  196. aux::yes_tag
  197. is_bind_helper(bind2< F,T1,T2 >*);
  198.  
  199. } // namespace aux
  200.  
  201. BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
  202. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
  203.  
  204. template<
  205.       typename F, typename T1, typename T2, typename T3
  206.     >
  207. struct bind3
  208. {
  209.     template<
  210.           typename U1 = na, typename U2 = na, typename U3 = na
  211.         , typename U4 = na, typename U5 = na
  212.         >
  213.     struct apply
  214.     {
  215.      private:
  216.         typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
  217.         typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
  218.         typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
  219.         typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
  220.  
  221.      public:
  222.         typedef typename apply_wrap3<
  223.               f_
  224.             , typename t1::type, typename t2::type, typename t3::type
  225.             >::type type;
  226.  
  227.     };
  228. };
  229.  
  230. namespace aux {
  231.  
  232. template<
  233.       typename F, typename T1, typename T2, typename T3
  234.     >
  235. aux::yes_tag
  236. is_bind_helper(bind3< F,T1,T2,T3 >*);
  237.  
  238. } // namespace aux
  239.  
  240. BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
  241. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
  242.  
  243. template<
  244.       typename F, typename T1, typename T2, typename T3, typename T4
  245.     >
  246. struct bind4
  247. {
  248.     template<
  249.           typename U1 = na, typename U2 = na, typename U3 = na
  250.         , typename U4 = na, typename U5 = na
  251.         >
  252.     struct apply
  253.     {
  254.      private:
  255.         typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
  256.         typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
  257.         typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
  258.         typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
  259.         typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
  260.  
  261.      public:
  262.         typedef typename apply_wrap4<
  263.               f_
  264.             , typename t1::type, typename t2::type, typename t3::type
  265.             , typename t4::type
  266.             >::type type;
  267.  
  268.     };
  269. };
  270.  
  271. namespace aux {
  272.  
  273. template<
  274.       typename F, typename T1, typename T2, typename T3, typename T4
  275.     >
  276. aux::yes_tag
  277. is_bind_helper(bind4< F,T1,T2,T3,T4 >*);
  278.  
  279. } // namespace aux
  280.  
  281. BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
  282. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
  283.  
  284. template<
  285.       typename F, typename T1, typename T2, typename T3, typename T4
  286.     , typename T5
  287.     >
  288. struct bind5
  289. {
  290.     template<
  291.           typename U1 = na, typename U2 = na, typename U3 = na
  292.         , typename U4 = na, typename U5 = na
  293.         >
  294.     struct apply
  295.     {
  296.      private:
  297.         typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
  298.         typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
  299.         typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
  300.         typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
  301.         typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
  302.         typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
  303.  
  304.      public:
  305.         typedef typename apply_wrap5<
  306.               f_
  307.             , typename t1::type, typename t2::type, typename t3::type
  308.             , typename t4::type, typename t5::type
  309.             >::type type;
  310.  
  311.     };
  312. };
  313.  
  314. namespace aux {
  315.  
  316. template<
  317.       typename F, typename T1, typename T2, typename T3, typename T4
  318.     , typename T5
  319.     >
  320. aux::yes_tag
  321. is_bind_helper(bind5< F,T1,T2,T3,T4,T5 >*);
  322.  
  323. } // namespace aux
  324.  
  325. BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
  326. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
  327. }}
  328.  
  329.  
downloadbasic_bind.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