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 the main "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.  
  17. template<
  18.       typename T, typename U1, typename U2, typename U3, typename U4
  19.     , typename U5
  20.     >
  21. struct resolve_bind_arg
  22. {
  23.     typedef T type;
  24. };
  25.  
  26. template<
  27.       int N, typename U1, typename U2, typename U3, typename U4, typename U5
  28.     >
  29. struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
  30. {
  31.     typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
  32. };
  33.  
  34. } // namespace aux
  35.  
  36. template<
  37.       typename F
  38.     >
  39. struct bind0
  40. {
  41.     template<
  42.           typename U1, typename U2, typename U3, typename U4, typename U5
  43.         >
  44.     struct apply
  45.     {
  46.      private:
  47.         typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
  48.  
  49.      public:
  50.         typedef typename apply_wrap0<
  51.               f_
  52.             >::type type;
  53.  
  54.     };
  55. };
  56.  
  57. namespace aux {
  58.  
  59. template<
  60.       typename F, typename U1, typename U2, typename U3, typename U4
  61.     , typename U5
  62.     >
  63. struct resolve_bind_arg<
  64.       bind0<F>, U1, U2, U3, U4, U5
  65.     >
  66. {
  67.     typedef bind0<F> f_;
  68.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  69. };
  70.  
  71. } // namespace aux
  72.  
  73. BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
  74. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
  75.  
  76. template<
  77.       typename F, typename T1
  78.     >
  79. struct bind1
  80. {
  81.     template<
  82.           typename U1, typename U2, typename U3, typename U4, typename U5
  83.         >
  84.     struct apply
  85.     {
  86.      private:
  87.         typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
  88.         typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
  89.  
  90.      public:
  91.         typedef typename apply_wrap1<
  92.               f_
  93.             , typename t1::type
  94.             >::type type;
  95.  
  96.     };
  97. };
  98.  
  99. namespace aux {
  100.  
  101. template<
  102.       typename F, typename T1, typename U1, typename U2, typename U3
  103.     , typename U4, typename U5
  104.     >
  105. struct resolve_bind_arg<
  106.       bind1< F,T1 >, U1, U2, U3, U4, U5
  107.     >
  108. {
  109.     typedef bind1< F,T1 > f_;
  110.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  111. };
  112.  
  113. } // namespace aux
  114.  
  115. BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
  116. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
  117.  
  118. template<
  119.       typename F, typename T1, typename T2
  120.     >
  121. struct bind2
  122. {
  123.     template<
  124.           typename U1, typename U2, typename U3, typename U4, typename U5
  125.         >
  126.     struct apply
  127.     {
  128.      private:
  129.         typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
  130.         typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
  131.         typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
  132.  
  133.      public:
  134.         typedef typename apply_wrap2<
  135.               f_
  136.             , typename t1::type, typename t2::type
  137.             >::type type;
  138.  
  139.     };
  140. };
  141.  
  142. namespace aux {
  143.  
  144. template<
  145.       typename F, typename T1, typename T2, typename U1, typename U2
  146.     , typename U3, typename U4, typename U5
  147.     >
  148. struct resolve_bind_arg<
  149.       bind2< F,T1,T2 >, U1, U2, U3, U4, U5
  150.     >
  151. {
  152.     typedef bind2< F,T1,T2 > f_;
  153.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  154. };
  155.  
  156. } // namespace aux
  157.  
  158. BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
  159. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
  160.  
  161. template<
  162.       typename F, typename T1, typename T2, typename T3
  163.     >
  164. struct bind3
  165. {
  166.     template<
  167.           typename U1, typename U2, typename U3, typename U4, typename U5
  168.         >
  169.     struct apply
  170.     {
  171.      private:
  172.         typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
  173.         typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
  174.         typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
  175.         typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
  176.  
  177.      public:
  178.         typedef typename apply_wrap3<
  179.               f_
  180.             , typename t1::type, typename t2::type, typename t3::type
  181.             >::type type;
  182.  
  183.     };
  184. };
  185.  
  186. namespace aux {
  187.  
  188. template<
  189.       typename F, typename T1, typename T2, typename T3, typename U1
  190.     , typename U2, typename U3, typename U4, typename U5
  191.     >
  192. struct resolve_bind_arg<
  193.       bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
  194.     >
  195. {
  196.     typedef bind3< F,T1,T2,T3 > f_;
  197.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  198. };
  199.  
  200. } // namespace aux
  201.  
  202. BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
  203. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
  204.  
  205. template<
  206.       typename F, typename T1, typename T2, typename T3, typename T4
  207.     >
  208. struct bind4
  209. {
  210.     template<
  211.           typename U1, typename U2, typename U3, typename U4, typename U5
  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.         typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
  221.  
  222.      public:
  223.         typedef typename apply_wrap4<
  224.               f_
  225.             , typename t1::type, typename t2::type, typename t3::type
  226.             , typename t4::type
  227.             >::type type;
  228.  
  229.     };
  230. };
  231.  
  232. namespace aux {
  233.  
  234. template<
  235.       typename F, typename T1, typename T2, typename T3, typename T4
  236.     , typename U1, typename U2, typename U3, typename U4, typename U5
  237.     >
  238. struct resolve_bind_arg<
  239.       bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
  240.     >
  241. {
  242.     typedef bind4< F,T1,T2,T3,T4 > f_;
  243.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  244. };
  245.  
  246. } // namespace aux
  247.  
  248. BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
  249. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
  250.  
  251. template<
  252.       typename F, typename T1, typename T2, typename T3, typename T4
  253.     , typename T5
  254.     >
  255. struct bind5
  256. {
  257.     template<
  258.           typename U1, typename U2, typename U3, typename U4, typename U5
  259.         >
  260.     struct apply
  261.     {
  262.      private:
  263.         typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
  264.         typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
  265.         typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
  266.         typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
  267.         typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
  268.         typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
  269.  
  270.      public:
  271.         typedef typename apply_wrap5<
  272.               f_
  273.             , typename t1::type, typename t2::type, typename t3::type
  274.             , typename t4::type, typename t5::type
  275.             >::type type;
  276.  
  277.     };
  278. };
  279.  
  280. namespace aux {
  281.  
  282. template<
  283.       typename F, typename T1, typename T2, typename T3, typename T4
  284.     , typename T5, typename U1, typename U2, typename U3, typename U4
  285.     , typename U5
  286.     >
  287. struct resolve_bind_arg<
  288.       bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
  289.     >
  290. {
  291.     typedef bind5< F,T1,T2,T3,T4,T5 > f_;
  292.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  293. };
  294.  
  295. } // namespace aux
  296.  
  297. BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
  298. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
  299. }}
  300.  
  301.  
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