BVB Source Codes

mars Show bind_template.hpp Source code

Return Download mars: download bind_template.hpp Source code - Download mars Source code - Type:.hpp
  1. //
  2. //  bind/bind_template.hpp
  3. //
  4. //  Do not include this header directly.
  5. //
  6. //  Copyright (c) 2001-2004 Peter Dimov and Multi Media Ltd.
  7. //
  8. // Distributed under the Boost Software License, Version 1.0. (See
  9. // accompanying file LICENSE_1_0.txt or copy at
  10. // http://www.boost.org/LICENSE_1_0.txt)
  11. //
  12. //  See http://www.boost.org/libs/bind/bind.html for documentation.
  13. //
  14.  
  15.     typedef typename result_traits<R, F>::type result_type;
  16.  
  17.     result_type operator()()
  18.     {
  19.         list0 a;
  20.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  21.     }
  22.  
  23.     result_type operator()() const
  24.     {
  25.         list0 a;
  26.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  27.     }
  28.  
  29.     template<class A1> result_type operator()(A1 & a1)
  30.     {
  31.         list1<A1 &> a(a1);
  32.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  33.     }
  34.  
  35.     template<class A1> result_type operator()(A1 & a1) const
  36.     {
  37.         list1<A1 &> a(a1);
  38.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  39.     }
  40.  
  41. #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
  42.  && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
  43.  
  44.     template<class A1> result_type operator()(A1 const & a1)
  45.     {
  46.         list1<A1 const &> a(a1);
  47.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  48.     }
  49.  
  50.     template<class A1> result_type operator()(A1 const & a1) const
  51.     {
  52.         list1<A1 const &> a(a1);
  53.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  54.     }
  55.  
  56. #endif
  57.  
  58.     template<class A1, class A2> result_type operator()(A1 & a1, A2 & a2)
  59.     {
  60.         list2<A1 &, A2 &> a(a1, a2);
  61.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  62.     }
  63.  
  64.     template<class A1, class A2> result_type operator()(A1 & a1, A2 & a2) const
  65.     {
  66.         list2<A1 &, A2 &> a(a1, a2);
  67.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  68.     }
  69.  
  70. #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
  71.  && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
  72.  
  73.     template<class A1, class A2> result_type operator()(A1 const & a1, A2 & a2)
  74.     {
  75.         list2<A1 const &, A2 &> a(a1, a2);
  76.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  77.     }
  78.  
  79.     template<class A1, class A2> result_type operator()(A1 const & a1, A2 & a2) const
  80.     {
  81.         list2<A1 const &, A2 &> a(a1, a2);
  82.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  83.     }
  84.  
  85.  
  86.     template<class A1, class A2> result_type operator()(A1 & a1, A2 const & a2)
  87.     {
  88.         list2<A1 &, A2 const &> a(a1, a2);
  89.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  90.     }
  91.  
  92.     template<class A1, class A2> result_type operator()(A1 & a1, A2 const & a2) const
  93.     {
  94.         list2<A1 &, A2 const &> a(a1, a2);
  95.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  96.     }
  97.  
  98.  
  99.     template<class A1, class A2> result_type operator()(A1 const & a1, A2 const & a2)
  100.     {
  101.         list2<A1 const &, A2 const &> a(a1, a2);
  102.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  103.     }
  104.  
  105.     template<class A1, class A2> result_type operator()(A1 const & a1, A2 const & a2) const
  106.     {
  107.         list2<A1 const &, A2 const &> a(a1, a2);
  108.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  109.     }
  110.  
  111. #endif
  112.  
  113.     template<class A1, class A2, class A3> result_type operator()(A1 & a1, A2 & a2, A3 & a3)
  114.     {
  115.         list3<A1 &, A2 &, A3 &> a(a1, a2, a3);
  116.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  117.     }
  118.  
  119.     template<class A1, class A2, class A3> result_type operator()(A1 & a1, A2 & a2, A3 & a3) const
  120.     {
  121.         list3<A1 &, A2 &, A3 &> a(a1, a2, a3);
  122.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  123.     }
  124.  
  125. #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
  126.  && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
  127.  
  128.     template<class A1, class A2, class A3> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3)
  129.     {
  130.         list3<A1 const &, A2 const &, A3 const &> a(a1, a2, a3);
  131.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  132.     }
  133.  
  134.     template<class A1, class A2, class A3> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3) const
  135.     {
  136.         list3<A1 const &, A2 const &, A3 const &> a(a1, a2, a3);
  137.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  138.     }
  139.  
  140. #endif
  141.  
  142.     template<class A1, class A2, class A3, class A4> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4)
  143.     {
  144.         list4<A1 &, A2 &, A3 &, A4 &> a(a1, a2, a3, a4);
  145.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  146.     }
  147.  
  148.     template<class A1, class A2, class A3, class A4> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4) const
  149.     {
  150.         list4<A1 &, A2 &, A3 &, A4 &> a(a1, a2, a3, a4);
  151.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  152.     }
  153.  
  154. #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
  155.  && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
  156.  
  157.     template<class A1, class A2, class A3, class A4> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4)
  158.     {
  159.         list4<A1 const &, A2 const &, A3 const &, A4 const &> a(a1, a2, a3, a4);
  160.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  161.     }
  162.  
  163.     template<class A1, class A2, class A3, class A4> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4) const
  164.     {
  165.         list4<A1 const &, A2 const &, A3 const &, A4 const &> a(a1, a2, a3, a4);
  166.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  167.     }
  168.  
  169. #endif
  170.  
  171.     template<class A1, class A2, class A3, class A4, class A5> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5)
  172.     {
  173.         list5<A1 &, A2 &, A3 &, A4 &, A5 &> a(a1, a2, a3, a4, a5);
  174.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  175.     }
  176.  
  177.     template<class A1, class A2, class A3, class A4, class A5> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5) const
  178.     {
  179.         list5<A1 &, A2 &, A3 &, A4 &, A5 &> a(a1, a2, a3, a4, a5);
  180.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  181.     }
  182.  
  183. #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
  184.  && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
  185.  
  186.     template<class A1, class A2, class A3, class A4, class A5> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5)
  187.     {
  188.         list5<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &> a(a1, a2, a3, a4, a5);
  189.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  190.     }
  191.  
  192.     template<class A1, class A2, class A3, class A4, class A5> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5) const
  193.     {
  194.         list5<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &> a(a1, a2, a3, a4, a5);
  195.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  196.     }
  197.  
  198. #endif
  199.  
  200.     template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6)
  201.     {
  202.         list6<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &> a(a1, a2, a3, a4, a5, a6);
  203.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  204.     }
  205.  
  206.     template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6) const
  207.     {
  208.         list6<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &> a(a1, a2, a3, a4, a5, a6);
  209.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  210.     }
  211.  
  212. #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
  213.  && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
  214.  
  215.     template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6)
  216.     {
  217.         list6<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &> a(a1, a2, a3, a4, a5, a6);
  218.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  219.     }
  220.  
  221.     template<class A1, class A2, class A3, class A4, class A5, class A6> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6) const
  222.     {
  223.         list6<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &> a(a1, a2, a3, a4, a5, a6);
  224.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  225.     }
  226.  
  227. #endif
  228.  
  229.     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7)
  230.     {
  231.         list7<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &> a(a1, a2, a3, a4, a5, a6, a7);
  232.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  233.     }
  234.  
  235.     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7) const
  236.     {
  237.         list7<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &> a(a1, a2, a3, a4, a5, a6, a7);
  238.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  239.     }
  240.  
  241. #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
  242.  && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
  243.  
  244.     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7)
  245.     {
  246.         list7<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &, A7 const &> a(a1, a2, a3, a4, a5, a6, a7);
  247.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  248.     }
  249.  
  250.     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7) const
  251.     {
  252.         list7<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &, A7 const &> a(a1, a2, a3, a4, a5, a6, a7);
  253.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  254.     }
  255.  
  256. #endif
  257.  
  258.     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8)
  259.     {
  260.         list8<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &, A8 &> a(a1, a2, a3, a4, a5, a6, a7, a8);
  261.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  262.     }
  263.  
  264.     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8) const
  265.     {
  266.         list8<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &, A8 &> a(a1, a2, a3, a4, a5, a6, a7, a8);
  267.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  268.     }
  269.  
  270. #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
  271.  && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
  272.  
  273.     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8)
  274.     {
  275.         list8<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &, A7 const &, A8 const &> a(a1, a2, a3, a4, a5, a6, a7, a8);
  276.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  277.     }
  278.  
  279.     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8) const
  280.     {
  281.         list8<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &, A7 const &, A8 const &> a(a1, a2, a3, a4, a5, a6, a7, a8);
  282.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  283.     }
  284.  
  285. #endif
  286.  
  287.     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9)
  288.     {
  289.         list9<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &, A8 &, A9 &> a(a1, a2, a3, a4, a5, a6, a7, a8, a9);
  290.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  291.     }
  292.  
  293.     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(A1 & a1, A2 & a2, A3 & a3, A4 & a4, A5 & a5, A6 & a6, A7 & a7, A8 & a8, A9 & a9) const
  294.     {
  295.         list9<A1 &, A2 &, A3 &, A4 &, A5 &, A6 &, A7 &, A8 &, A9 &> a(a1, a2, a3, a4, a5, a6, a7, a8, a9);
  296.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  297.     }
  298.  
  299. #if !defined(BOOST_NO_FUNCTION_TEMPLATE_ORDERING) \
  300.  && !BOOST_WORKAROUND(__EDG_VERSION__, <= 238)
  301.  
  302.     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9)
  303.     {
  304.         list9<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &, A7 const &, A8 const &, A9 const &> a(a1, a2, a3, a4, a5, a6, a7, a8, a9);
  305.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  306.     }
  307.  
  308.     template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> result_type operator()(A1 const & a1, A2 const & a2, A3 const & a3, A4 const & a4, A5 const & a5, A6 const & a6, A7 const & a7, A8 const & a8, A9 const & a9) const
  309.     {
  310.         list9<A1 const &, A2 const &, A3 const &, A4 const &, A5 const &, A6 const &, A7 const &, A8 const &, A9 const &> a(a1, a2, a3, a4, a5, a6, a7, a8, a9);
  311.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  312.     }
  313.  
  314. #endif
  315.  
  316.     template<class A> result_type eval(A & a)
  317.     {
  318.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  319.     }
  320.  
  321.     template<class A> result_type eval(A & a) const
  322.     {
  323.         BOOST_BIND_RETURN l_(type<result_type>(), f_, a, 0);
  324.     }
  325.  
  326.     template<class V> void accept(V & v) const
  327.     {
  328. #if !defined( BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP ) && !defined( __BORLANDC__ )
  329.  
  330.         using mars_boost::visit_each;
  331.  
  332. #endif
  333.         BOOST_BIND_VISIT_EACH(v, f_, 0);
  334.         l_.accept(v);
  335.     }
  336.  
  337.     bool compare(this_type const & rhs) const
  338.     {
  339.         return ref_compare(f_, rhs.f_, 0) && l_ == rhs.l_;
  340.     }
  341.  
  342. private:
  343.  
  344.     F f_;
  345.     L l_;
  346.  
downloadbind_template.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