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