BVB Source Codes

mars Show bind.hpp Source code

Return Download mars: download 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/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.       typename T
  28.     , typename Arg
  29.     >
  30. struct replace_unnamed_arg
  31. {
  32.     typedef Arg next;
  33.     typedef T type;
  34. };
  35.  
  36. template<
  37.       typename Arg
  38.     >
  39. struct replace_unnamed_arg< arg< -1 >, Arg >
  40. {
  41.     typedef typename Arg::next next;
  42.     typedef Arg type;
  43. };
  44.  
  45. template<
  46.       int N, typename U1, typename U2, typename U3, typename U4, typename U5
  47.     >
  48. struct resolve_bind_arg< arg<N>, U1, U2, U3, U4, U5 >
  49. {
  50.     typedef typename apply_wrap5<mpl::arg<N>, U1, U2, U3, U4, U5>::type type;
  51. };
  52.  
  53. template<
  54.       typename F, typename T1, typename T2, typename T3, typename T4
  55.     , typename T5, typename U1, typename U2, typename U3, typename U4
  56.     , typename U5
  57.     >
  58. struct resolve_bind_arg< bind< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5 >
  59. {
  60.     typedef bind< F,T1,T2,T3,T4,T5 > f_;
  61.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  62. };
  63.  
  64. } // namespace aux
  65.  
  66. template<
  67.       typename F, int dummy_
  68.     >
  69. struct bind0
  70. {
  71.     template<
  72.           typename U1 = na, typename U2 = na, typename U3 = na
  73.         , typename U4 = na, typename U5 = na
  74.         >
  75.     struct apply
  76.     {
  77.      private:
  78.         typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
  79.         typedef typename r0::type a0;
  80.         typedef typename r0::next n1;
  81.         typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
  82.         ///
  83.      public:
  84.         typedef typename apply_wrap0<
  85.               f_
  86.             >::type type;
  87.  
  88.     };
  89. };
  90.  
  91. namespace aux {
  92.  
  93. template<
  94.       typename F, typename U1, typename U2, typename U3, typename U4
  95.     , typename U5
  96.     >
  97. struct resolve_bind_arg<
  98.       bind0<F>, U1, U2, U3, U4, U5
  99.     >
  100. {
  101.     typedef bind0<F> f_;
  102.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  103. };
  104.  
  105. } // namespace aux
  106.  
  107. BOOST_MPL_AUX_ARITY_SPEC(1, bind0)
  108. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(1, bind0)
  109.  
  110. template<
  111.       typename F, int dummy_
  112.     >
  113. struct bind< F,na,na,na,na,na >
  114.     : bind0<F>
  115. {
  116. };
  117.  
  118. template<
  119.       typename F, typename T1, int dummy_
  120.     >
  121. struct bind1
  122. {
  123.     template<
  124.           typename U1 = na, typename U2 = na, typename U3 = na
  125.         , typename U4 = na, typename U5 = na
  126.         >
  127.     struct apply
  128.     {
  129.      private:
  130.         typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
  131.         typedef typename r0::type a0;
  132.         typedef typename r0::next n1;
  133.         typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
  134.         ///
  135.         typedef aux::replace_unnamed_arg< T1,n1 > r1;
  136.         typedef typename r1::type a1;
  137.         typedef typename r1::next n2;
  138.         typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
  139.         ///
  140.      public:
  141.         typedef typename apply_wrap1<
  142.               f_
  143.             , typename t1::type
  144.             >::type type;
  145.  
  146.     };
  147. };
  148.  
  149. namespace aux {
  150.  
  151. template<
  152.       typename F, typename T1, typename U1, typename U2, typename U3
  153.     , typename U4, typename U5
  154.     >
  155. struct resolve_bind_arg<
  156.       bind1< F,T1 >, U1, U2, U3, U4, U5
  157.     >
  158. {
  159.     typedef bind1< F,T1 > f_;
  160.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  161. };
  162.  
  163. } // namespace aux
  164.  
  165. BOOST_MPL_AUX_ARITY_SPEC(2, bind1)
  166. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(2, bind1)
  167.  
  168. template<
  169.       typename F, typename T1, int dummy_
  170.     >
  171. struct bind< F,T1,na,na,na,na >
  172.     : bind1< F,T1 >
  173. {
  174. };
  175.  
  176. template<
  177.       typename F, typename T1, typename T2, int dummy_
  178.     >
  179. struct bind2
  180. {
  181.     template<
  182.           typename U1 = na, typename U2 = na, typename U3 = na
  183.         , typename U4 = na, typename U5 = na
  184.         >
  185.     struct apply
  186.     {
  187.      private:
  188.         typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
  189.         typedef typename r0::type a0;
  190.         typedef typename r0::next n1;
  191.         typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
  192.         ///
  193.         typedef aux::replace_unnamed_arg< T1,n1 > r1;
  194.         typedef typename r1::type a1;
  195.         typedef typename r1::next n2;
  196.         typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
  197.         ///
  198.         typedef aux::replace_unnamed_arg< T2,n2 > r2;
  199.         typedef typename r2::type a2;
  200.         typedef typename r2::next n3;
  201.         typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
  202.         ///
  203.      public:
  204.         typedef typename apply_wrap2<
  205.               f_
  206.             , typename t1::type, typename t2::type
  207.             >::type type;
  208.  
  209.     };
  210. };
  211.  
  212. namespace aux {
  213.  
  214. template<
  215.       typename F, typename T1, typename T2, typename U1, typename U2
  216.     , typename U3, typename U4, typename U5
  217.     >
  218. struct resolve_bind_arg<
  219.       bind2< F,T1,T2 >, U1, U2, U3, U4, U5
  220.     >
  221. {
  222.     typedef bind2< F,T1,T2 > f_;
  223.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  224. };
  225.  
  226. } // namespace aux
  227.  
  228. BOOST_MPL_AUX_ARITY_SPEC(3, bind2)
  229. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(3, bind2)
  230.  
  231. template<
  232.       typename F, typename T1, typename T2, int dummy_
  233.     >
  234. struct bind< F,T1,T2,na,na,na >
  235.     : bind2< F,T1,T2 >
  236. {
  237. };
  238.  
  239. template<
  240.       typename F, typename T1, typename T2, typename T3, int dummy_
  241.     >
  242. struct bind3
  243. {
  244.     template<
  245.           typename U1 = na, typename U2 = na, typename U3 = na
  246.         , typename U4 = na, typename U5 = na
  247.         >
  248.     struct apply
  249.     {
  250.      private:
  251.         typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
  252.         typedef typename r0::type a0;
  253.         typedef typename r0::next n1;
  254.         typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
  255.         ///
  256.         typedef aux::replace_unnamed_arg< T1,n1 > r1;
  257.         typedef typename r1::type a1;
  258.         typedef typename r1::next n2;
  259.         typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
  260.         ///
  261.         typedef aux::replace_unnamed_arg< T2,n2 > r2;
  262.         typedef typename r2::type a2;
  263.         typedef typename r2::next n3;
  264.         typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
  265.         ///
  266.         typedef aux::replace_unnamed_arg< T3,n3 > r3;
  267.         typedef typename r3::type a3;
  268.         typedef typename r3::next n4;
  269.         typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
  270.         ///
  271.      public:
  272.         typedef typename apply_wrap3<
  273.               f_
  274.             , typename t1::type, typename t2::type, typename t3::type
  275.             >::type type;
  276.  
  277.     };
  278. };
  279.  
  280. namespace aux {
  281.  
  282. template<
  283.       typename F, typename T1, typename T2, typename T3, typename U1
  284.     , typename U2, typename U3, typename U4, typename U5
  285.     >
  286. struct resolve_bind_arg<
  287.       bind3< F,T1,T2,T3 >, U1, U2, U3, U4, U5
  288.     >
  289. {
  290.     typedef bind3< F,T1,T2,T3 > f_;
  291.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  292. };
  293.  
  294. } // namespace aux
  295.  
  296. BOOST_MPL_AUX_ARITY_SPEC(4, bind3)
  297. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(4, bind3)
  298.  
  299. template<
  300.       typename F, typename T1, typename T2, typename T3, int dummy_
  301.     >
  302. struct bind< F,T1,T2,T3,na,na >
  303.     : bind3< F,T1,T2,T3 >
  304. {
  305. };
  306.  
  307. template<
  308.       typename F, typename T1, typename T2, typename T3, typename T4
  309.     , int dummy_
  310.     >
  311. struct bind4
  312. {
  313.     template<
  314.           typename U1 = na, typename U2 = na, typename U3 = na
  315.         , typename U4 = na, typename U5 = na
  316.         >
  317.     struct apply
  318.     {
  319.      private:
  320.         typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
  321.         typedef typename r0::type a0;
  322.         typedef typename r0::next n1;
  323.         typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
  324.         ///
  325.         typedef aux::replace_unnamed_arg< T1,n1 > r1;
  326.         typedef typename r1::type a1;
  327.         typedef typename r1::next n2;
  328.         typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
  329.         ///
  330.         typedef aux::replace_unnamed_arg< T2,n2 > r2;
  331.         typedef typename r2::type a2;
  332.         typedef typename r2::next n3;
  333.         typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
  334.         ///
  335.         typedef aux::replace_unnamed_arg< T3,n3 > r3;
  336.         typedef typename r3::type a3;
  337.         typedef typename r3::next n4;
  338.         typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
  339.         ///
  340.         typedef aux::replace_unnamed_arg< T4,n4 > r4;
  341.         typedef typename r4::type a4;
  342.         typedef typename r4::next n5;
  343.         typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
  344.         ///
  345.      public:
  346.         typedef typename apply_wrap4<
  347.               f_
  348.             , typename t1::type, typename t2::type, typename t3::type
  349.             , typename t4::type
  350.             >::type type;
  351.  
  352.     };
  353. };
  354.  
  355. namespace aux {
  356.  
  357. template<
  358.       typename F, typename T1, typename T2, typename T3, typename T4
  359.     , typename U1, typename U2, typename U3, typename U4, typename U5
  360.     >
  361. struct resolve_bind_arg<
  362.       bind4< F,T1,T2,T3,T4 >, U1, U2, U3, U4, U5
  363.     >
  364. {
  365.     typedef bind4< F,T1,T2,T3,T4 > f_;
  366.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  367. };
  368.  
  369. } // namespace aux
  370.  
  371. BOOST_MPL_AUX_ARITY_SPEC(5, bind4)
  372. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(5, bind4)
  373.  
  374. template<
  375.       typename F, typename T1, typename T2, typename T3, typename T4
  376.     , int dummy_
  377.     >
  378. struct bind< F,T1,T2,T3,T4,na >
  379.     : bind4< F,T1,T2,T3,T4 >
  380. {
  381. };
  382.  
  383. template<
  384.       typename F, typename T1, typename T2, typename T3, typename T4
  385.     , typename T5, int dummy_
  386.     >
  387. struct bind5
  388. {
  389.     template<
  390.           typename U1 = na, typename U2 = na, typename U3 = na
  391.         , typename U4 = na, typename U5 = na
  392.         >
  393.     struct apply
  394.     {
  395.      private:
  396.         typedef aux::replace_unnamed_arg< F, mpl::arg<1> > r0;
  397.         typedef typename r0::type a0;
  398.         typedef typename r0::next n1;
  399.         typedef typename aux::resolve_bind_arg< a0,U1,U2,U3,U4,U5 >::type f_;
  400.         ///
  401.         typedef aux::replace_unnamed_arg< T1,n1 > r1;
  402.         typedef typename r1::type a1;
  403.         typedef typename r1::next n2;
  404.         typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
  405.         ///
  406.         typedef aux::replace_unnamed_arg< T2,n2 > r2;
  407.         typedef typename r2::type a2;
  408.         typedef typename r2::next n3;
  409.         typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
  410.         ///
  411.         typedef aux::replace_unnamed_arg< T3,n3 > r3;
  412.         typedef typename r3::type a3;
  413.         typedef typename r3::next n4;
  414.         typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
  415.         ///
  416.         typedef aux::replace_unnamed_arg< T4,n4 > r4;
  417.         typedef typename r4::type a4;
  418.         typedef typename r4::next n5;
  419.         typedef aux::resolve_bind_arg< a4,U1,U2,U3,U4,U5 > t4;
  420.         ///
  421.         typedef aux::replace_unnamed_arg< T5,n5 > r5;
  422.         typedef typename r5::type a5;
  423.         typedef typename r5::next n6;
  424.         typedef aux::resolve_bind_arg< a5,U1,U2,U3,U4,U5 > t5;
  425.         ///
  426.      public:
  427.         typedef typename apply_wrap5<
  428.               f_
  429.             , typename t1::type, typename t2::type, typename t3::type
  430.             , typename t4::type, typename t5::type
  431.             >::type type;
  432.  
  433.     };
  434. };
  435.  
  436. namespace aux {
  437.  
  438. template<
  439.       typename F, typename T1, typename T2, typename T3, typename T4
  440.     , typename T5, typename U1, typename U2, typename U3, typename U4
  441.     , typename U5
  442.     >
  443. struct resolve_bind_arg<
  444.       bind5< F,T1,T2,T3,T4,T5 >, U1, U2, U3, U4, U5
  445.     >
  446. {
  447.     typedef bind5< F,T1,T2,T3,T4,T5 > f_;
  448.     typedef typename apply_wrap5< f_,U1,U2,U3,U4,U5 >::type type;
  449. };
  450.  
  451. } // namespace aux
  452.  
  453. BOOST_MPL_AUX_ARITY_SPEC(6, bind5)
  454. BOOST_MPL_AUX_TEMPLATE_ARITY_SPEC(6, bind5)
  455.  
  456. /// primary template (not a specialization!)
  457.  
  458. template<
  459.       typename F, typename T1, typename T2, typename T3, typename T4
  460.     , typename T5, int dummy_
  461.     >
  462. struct bind
  463.     : bind5< F,T1,T2,T3,T4,T5 >
  464. {
  465. };
  466.  
  467. /// if_/eval_if specializations
  468. template< template< typename T1, typename T2, typename T3 > class F, typename Tag >
  469. struct quote3;
  470.  
  471. template< typename T1, typename T2, typename T3 > struct if_;
  472.  
  473. template<
  474.       typename Tag, typename T1, typename T2, typename T3
  475.     >
  476. struct bind3<
  477.       quote3< if_,Tag >
  478.     , T1, T2, T3
  479.     >
  480. {
  481.     template<
  482.           typename U1 = na, typename U2 = na, typename U3 = na
  483.         , typename U4 = na, typename U5 = na
  484.         >
  485.     struct apply
  486.     {
  487.      private:
  488.         typedef mpl::arg<1> n1;
  489.         typedef aux::replace_unnamed_arg< T1,n1 > r1;
  490.         typedef typename r1::type a1;
  491.         typedef typename r1::next n2;
  492.         typedef aux::resolve_bind_arg< a1,U1,U2,U3,U4,U5 > t1;
  493.         ///
  494.         typedef aux::replace_unnamed_arg< T2,n2 > r2;
  495.         typedef typename r2::type a2;
  496.         typedef typename r2::next n3;
  497.         typedef aux::resolve_bind_arg< a2,U1,U2,U3,U4,U5 > t2;
  498.         ///
  499.         typedef aux::replace_unnamed_arg< T3,n3 > r3;
  500.         typedef typename r3::type a3;
  501.         typedef typename r3::next n4;
  502.         typedef aux::resolve_bind_arg< a3,U1,U2,U3,U4,U5 > t3;
  503.         ///
  504.         typedef typename if_<
  505.               typename t1::type
  506.             , t2, t3
  507.             >::type f_;
  508.  
  509.      public:
  510.         typedef typename f_::type type;
  511.     };
  512. };
  513.  
  514. }}
  515.  
  516.  
downloadbind.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