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.  
  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. template<
  35.       typename F, typename T1, typename T2, typename T3, typename T4
  36.     , typename T5, typename U1, typename U2, typename U3, typename U4
  37.     , typename U5
  38.     >
  39. struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
  40. {
  41.     typedef bind< F,T1,T2,T3,T4,T5 > f_;
  42.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  43. };
  44.  
  45. } // namespace aux
  46.  
  47. template<
  48.       typename F, int dummy_
  49.     >
  50. struct bind0
  51. {
  52.     template<
  53.           typename U1 = na, typename U2 = na, typename U3 = na
  54.         , typename U4 = na, typename U5 = na
  55.         >
  56.     struct apply
  57.     {
  58.      private:
  59.         typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
  60.  
  61.      public:
  62.         typedef typename apply_wrap0<
  63.               f_
  64.             >::type type;
  65.  
  66.     };
  67. };
  68.  
  69. namespace aux {
  70.  
  71. template<
  72.       typename F, typename U1, typename U2, typename U3, typename U4
  73.     , typename U5
  74.     >
  75. struct resolve_bind_arg<
  76.       bind0<F>, U1, U2, U3, U4, U5
  77.     >
  78. {
  79.     typedef bind0<F> f_;
  80.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  81. };
  82.  
  83. } // namespace aux
  84.  
  85. BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
  86. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
  87.  
  88. template<
  89.       typename F, int dummy_
  90.     >
  91. struct bind< F,na,na,na,na,na >
  92.     : bind0<F>
  93. {
  94. };
  95.  
  96. template<
  97.       typename F, typename T1, int dummy_
  98.     >
  99. struct bind1
  100. {
  101.     template<
  102.           typename U1 = na, typename U2 = na, typename U3 = na
  103.         , typename U4 = na, typename U5 = na
  104.         >
  105.     struct apply
  106.     {
  107.      private:
  108.         typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
  109.         typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
  110.  
  111.      public:
  112.         typedef typename apply_wrap1<
  113.               f_
  114.             , typename t1::type
  115.             >::type type;
  116.  
  117.     };
  118. };
  119.  
  120. namespace aux {
  121.  
  122. template<
  123.       typename F, typename T1, typename U1, typename U2, typename U3
  124.     , typename U4, typename U5
  125.     >
  126. struct resolve_bind_arg<
  127.       bind1< F,T1 >, U1, U2, U3, U4, U5
  128.     >
  129. {
  130.     typedef bind1< F,T1 > f_;
  131.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  132. };
  133.  
  134. } // namespace aux
  135.  
  136. BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
  137. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
  138.  
  139. template<
  140.       typename F, typename T1, int dummy_
  141.     >
  142. struct bind< F,T1,na,na,na,na >
  143.     : bind1< F,T1 >
  144. {
  145. };
  146.  
  147. template<
  148.       typename F, typename T1, typename T2, int dummy_
  149.     >
  150. struct bind2
  151. {
  152.     template<
  153.           typename U1 = na, typename U2 = na, typename U3 = na
  154.         , typename U4 = na, typename U5 = na
  155.         >
  156.     struct apply
  157.     {
  158.      private:
  159.         typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
  160.         typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
  161.         typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
  162.  
  163.      public:
  164.         typedef typename apply_wrap2<
  165.               f_
  166.             , typename t1::type, typename t2::type
  167.             >::type type;
  168.  
  169.     };
  170. };
  171.  
  172. namespace aux {
  173.  
  174. template<
  175.       typename F, typename T1, typename T2, typename U1, typename U2
  176.     , typename U3, typename U4, typename U5
  177.     >
  178. struct resolve_bind_arg<
  179.       bind2< F,T1,T2 >, U1, U2, U3, U4, U5
  180.     >
  181. {
  182.     typedef bind2< F,T1,T2 > f_;
  183.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  184. };
  185.  
  186. } // namespace aux
  187.  
  188. BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
  189. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
  190.  
  191. template<
  192.       typename F, typename T1, typename T2, int dummy_
  193.     >
  194. struct bind< F,T1,T2,na,na,na >
  195.     : bind2< F,T1,T2 >
  196. {
  197. };
  198.  
  199. template<
  200.       typename F, typename T1, typename T2, typename T3, int dummy_
  201.     >
  202. struct bind3
  203. {
  204.     template<
  205.           typename U1 = na, typename U2 = na, typename U3 = na
  206.         , typename U4 = na, typename U5 = na
  207.         >
  208.     struct apply
  209.     {
  210.      private:
  211.         typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
  212.         typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
  213.         typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
  214.         typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
  215.  
  216.      public:
  217.         typedef typename apply_wrap3<
  218.               f_
  219.             , typename t1::type, typename t2::type, typename t3::type
  220.             >::type type;
  221.  
  222.     };
  223. };
  224.  
  225. namespace aux {
  226.  
  227. template<
  228.       typename F, typename T1, typename T2, typename T3, typename U1
  229.     , typename U2, typename U3, typename U4, typename U5
  230.     >
  231. struct resolve_bind_arg<
  232.       bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
  233.     >
  234. {
  235.     typedef bind3< F,T1,T2,T3 > f_;
  236.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  237. };
  238.  
  239. } // namespace aux
  240.  
  241. BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
  242. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
  243.  
  244. template<
  245.       typename F, typename T1, typename T2, typename T3, int dummy_
  246.     >
  247. struct bind< F,T1,T2,T3,na,na >
  248.     : bind3< F,T1,T2,T3 >
  249. {
  250. };
  251.  
  252. template<
  253.       typename F, typename T1, typename T2, typename T3, typename T4
  254.     , int dummy_
  255.     >
  256. struct bind4
  257. {
  258.     template<
  259.           typename U1 = na, typename U2 = na, typename U3 = na
  260.         , typename U4 = na, typename U5 = na
  261.         >
  262.     struct apply
  263.     {
  264.      private:
  265.         typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
  266.         typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
  267.         typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
  268.         typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
  269.         typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
  270.  
  271.      public:
  272.         typedef typename apply_wrap4<
  273.               f_
  274.             , typename t1::type, typename t2::type, typename t3::type
  275.             , typename t4::type
  276.             >::type type;
  277.  
  278.     };
  279. };
  280.  
  281. namespace aux {
  282.  
  283. template<
  284.       typename F, typename T1, typename T2, typename T3, typename T4
  285.     , typename U1, typename U2, typename U3, typename U4, typename U5
  286.     >
  287. struct resolve_bind_arg<
  288.       bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
  289.     >
  290. {
  291.     typedef bind4< F,T1,T2,T3,T4 > 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(5, bind4)
  298. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
  299.  
  300. template<
  301.       typename F, typename T1, typename T2, typename T3, typename T4
  302.     , int dummy_
  303.     >
  304. struct bind< F,T1,T2,T3,T4,na >
  305.     : bind4< F,T1,T2,T3,T4 >
  306. {
  307. };
  308.  
  309. template<
  310.       typename F, typename T1, typename T2, typename T3, typename T4
  311.     , typename T5, int dummy_
  312.     >
  313. struct bind5
  314. {
  315.     template<
  316.           typename U1 = na, typename U2 = na, typename U3 = na
  317.         , typename U4 = na, typename U5 = na
  318.         >
  319.     struct apply
  320.     {
  321.      private:
  322.         typedef typename aux::resolve_bind_arg< F,U1,U2,U3,U4,U5 >::type f_;
  323.         typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
  324.         typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
  325.         typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
  326.         typedef aux::resolve_bind_arg< T4,U1,U2,U3,U4,U5 > t4;
  327.         typedef aux::resolve_bind_arg< T5,U1,U2,U3,U4,U5 > t5;
  328.  
  329.      public:
  330.         typedef typename apply_wrap5<
  331.               f_
  332.             , typename t1::type, typename t2::type, typename t3::type
  333.             , typename t4::type, typename t5::type
  334.             >::type type;
  335.  
  336.     };
  337. };
  338.  
  339. namespace aux {
  340.  
  341. template<
  342.       typename F, typename T1, typename T2, typename T3, typename T4
  343.     , typename T5, typename U1, typename U2, typename U3, typename U4
  344.     , typename U5
  345.     >
  346. struct resolve_bind_arg<
  347.       bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
  348.     >
  349. {
  350.     typedef bind5< F,T1,T2,T3,T4,T5 > f_;
  351.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  352. };
  353.  
  354. } // namespace aux
  355.  
  356. BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
  357. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
  358.  
  359. /// primary template (not a specialization!)
  360.  
  361. template<
  362.       typename F, typename T1, typename T2, typename T3, typename T4
  363.     , typename T5, int dummy_
  364.     >
  365. struct bind
  366.     : bind5< F,T1,T2,T3,T4,T5 >
  367. {
  368. };
  369.  
  370. /// if_/eval_if specializations
  371. template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
  372. struct quote3;
  373.  
  374. template< typename T1, typename T2, typename T3 > struct if_;
  375.  
  376. template<
  377.       typename Tag, typename T1, typename T2, typename T3
  378.     >
  379. struct bind3<
  380.       quote3< if_,Tag >
  381.     , T1, T2, T3
  382.     >
  383. {
  384.     template<
  385.           typename U1 = na, typename U2 = na, typename U3 = na
  386.         , typename U4 = na, typename U5 = na
  387.         >
  388.     struct apply
  389.     {
  390.      private:
  391.         typedef mpl::arg<1> n1;
  392.         typedef aux::resolve_bind_arg< T1,U1,U2,U3,U4,U5 > t1;
  393.         typedef aux::resolve_bind_arg< T2,U1,U2,U3,U4,U5 > t2;
  394.         typedef aux::resolve_bind_arg< T3,U1,U2,U3,U4,U5 > t3;
  395.         typedef typename if_<
  396.               typename t1::type
  397.             , t2, t3
  398.             >::type f_;
  399.  
  400.      public:
  401.         typedef typename f_::type type;
  402.     };
  403. };
  404.  
  405. }}
  406.  
  407.  
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