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