BVB Source Codes

mars Show storage.hpp Source code

Return Download mars: download storage.hpp Source code - Download mars Source code - Type:.hpp
  1. #ifndef BOOST_BIND_STORAGE_HPP_INCLUDED
  2. #define BOOST_BIND_STORAGE_HPP_INCLUDED
  3.  
  4. // MS compatible compilers support #pragma once
  5.  
  6. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  7. # pragma once
  8. #endif
  9.  
  10. //
  11. //  bind/storage.hpp
  12. //
  13. //  boost/bind.hpp support header, optimized storage
  14. //
  15. //  Copyright (c) 2006 Peter Dimov
  16. //
  17. //  Distributed under the Boost Software License, Version 1.0.
  18. //  See accompanying file LICENSE_1_0.txt or copy at
  19. //  http://www.boost.org/LICENSE_1_0.txt
  20. //
  21. //  See http://www.boost.org/libs/bind/bind.html for documentation.
  22. //
  23.  
  24. #include <boost/config.hpp>
  25. #include <boost/bind/arg.hpp>
  26.  
  27. #ifdef BOOST_MSVC
  28. # pragma warning(push)
  29. # pragma warning(disable: 4512) // assignment operator could not be generated
  30. #endif
  31.  
  32. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost
  33. {
  34.  
  35. namespace _bi
  36. {
  37.  
  38. // 1
  39.  
  40. template<class A1> struct storage1
  41. {
  42.     explicit storage1( A1 a1 ): a1_( a1 ) {}
  43.  
  44.     template<class V> void accept(V & v) const
  45.     {
  46.         BOOST_BIND_VISIT_EACH(v, a1_, 0);
  47.     }
  48.  
  49.     A1 a1_;
  50. };
  51.  
  52. #if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( __BORLANDC__ )
  53.  
  54. template<int I> struct storage1< mars_boost::arg<I> >
  55. {
  56.     explicit storage1( mars_boost::arg<I> ) {}
  57.  
  58.     template<class V> void accept(V &) const { }
  59.  
  60.     static mars_boost::arg<I> a1_() { return mars_boost::arg<I>(); }
  61. };
  62.  
  63. template<int I> struct storage1< mars_boost::arg<I> (*) () >
  64. {
  65.     explicit storage1( mars_boost::arg<I> (*) () ) {}
  66.  
  67.     template<class V> void accept(V &) const { }
  68.  
  69.     static mars_boost::arg<I> a1_() { return mars_boost::arg<I>(); }
  70. };
  71.  
  72. #endif
  73.  
  74. // 2
  75.  
  76. template<class A1, class A2> struct storage2: public storage1<A1>
  77. {
  78.     typedef storage1<A1> inherited;
  79.  
  80.     storage2( A1 a1, A2 a2 ): storage1<A1>( a1 ), a2_( a2 ) {}
  81.  
  82.     template<class V> void accept(V & v) const
  83.     {
  84.         inherited::accept(v);
  85.         BOOST_BIND_VISIT_EACH(v, a2_, 0);
  86.     }
  87.  
  88.     A2 a2_;
  89. };
  90.  
  91. #if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
  92.  
  93. template<class A1, int I> struct storage2< A1, mars_boost::arg<I> >: public storage1<A1>
  94. {
  95.     typedef storage1<A1> inherited;
  96.  
  97.     storage2( A1 a1, mars_boost::arg<I> ): storage1<A1>( a1 ) {}
  98.  
  99.     template<class V> void accept(V & v) const
  100.     {
  101.         inherited::accept(v);
  102.     }
  103.  
  104.     static mars_boost::arg<I> a2_() { return mars_boost::arg<I>(); }
  105. };
  106.  
  107. template<class A1, int I> struct storage2< A1, mars_boost::arg<I> (*) () >: public storage1<A1>
  108. {
  109.     typedef storage1<A1> inherited;
  110.  
  111.     storage2( A1 a1, mars_boost::arg<I> (*) () ): storage1<A1>( a1 ) {}
  112.  
  113.     template<class V> void accept(V & v) const
  114.     {
  115.         inherited::accept(v);
  116.     }
  117.  
  118.     static mars_boost::arg<I> a2_() { return mars_boost::arg<I>(); }
  119. };
  120.  
  121. #endif
  122.  
  123. // 3
  124.  
  125. template<class A1, class A2, class A3> struct storage3: public storage2< A1, A2 >
  126. {
  127.     typedef storage2<A1, A2> inherited;
  128.  
  129.     storage3( A1 a1, A2 a2, A3 a3 ): storage2<A1, A2>( a1, a2 ), a3_( a3 ) {}
  130.  
  131.     template<class V> void accept(V & v) const
  132.     {
  133.         inherited::accept(v);
  134.         BOOST_BIND_VISIT_EACH(v, a3_, 0);
  135.     }
  136.  
  137.     A3 a3_;
  138. };
  139.  
  140. #if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
  141.  
  142. template<class A1, class A2, int I> struct storage3< A1, A2, mars_boost::arg<I> >: public storage2< A1, A2 >
  143. {
  144.     typedef storage2<A1, A2> inherited;
  145.  
  146.     storage3( A1 a1, A2 a2, mars_boost::arg<I> ): storage2<A1, A2>( a1, a2 ) {}
  147.  
  148.     template<class V> void accept(V & v) const
  149.     {
  150.         inherited::accept(v);
  151.     }
  152.  
  153.     static mars_boost::arg<I> a3_() { return mars_boost::arg<I>(); }
  154. };
  155.  
  156. template<class A1, class A2, int I> struct storage3< A1, A2, mars_boost::arg<I> (*) () >: public storage2< A1, A2 >
  157. {
  158.     typedef storage2<A1, A2> inherited;
  159.  
  160.     storage3( A1 a1, A2 a2, mars_boost::arg<I> (*) () ): storage2<A1, A2>( a1, a2 ) {}
  161.  
  162.     template<class V> void accept(V & v) const
  163.     {
  164.         inherited::accept(v);
  165.     }
  166.  
  167.     static mars_boost::arg<I> a3_() { return mars_boost::arg<I>(); }
  168. };
  169.  
  170. #endif
  171.  
  172. // 4
  173.  
  174. template<class A1, class A2, class A3, class A4> struct storage4: public storage3< A1, A2, A3 >
  175. {
  176.     typedef storage3<A1, A2, A3> inherited;
  177.  
  178.     storage4( A1 a1, A2 a2, A3 a3, A4 a4 ): storage3<A1, A2, A3>( a1, a2, a3 ), a4_( a4 ) {}
  179.  
  180.     template<class V> void accept(V & v) const
  181.     {
  182.         inherited::accept(v);
  183.         BOOST_BIND_VISIT_EACH(v, a4_, 0);
  184.     }
  185.  
  186.     A4 a4_;
  187. };
  188.  
  189. #if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
  190.  
  191. template<class A1, class A2, class A3, int I> struct storage4< A1, A2, A3, mars_boost::arg<I> >: public storage3< A1, A2, A3 >
  192. {
  193.     typedef storage3<A1, A2, A3> inherited;
  194.  
  195.     storage4( A1 a1, A2 a2, A3 a3, mars_boost::arg<I> ): storage3<A1, A2, A3>( a1, a2, a3 ) {}
  196.  
  197.     template<class V> void accept(V & v) const
  198.     {
  199.         inherited::accept(v);
  200.     }
  201.  
  202.     static mars_boost::arg<I> a4_() { return mars_boost::arg<I>(); }
  203. };
  204.  
  205. template<class A1, class A2, class A3, int I> struct storage4< A1, A2, A3, mars_boost::arg<I> (*) () >: public storage3< A1, A2, A3 >
  206. {
  207.     typedef storage3<A1, A2, A3> inherited;
  208.  
  209.     storage4( A1 a1, A2 a2, A3 a3, mars_boost::arg<I> (*) () ): storage3<A1, A2, A3>( a1, a2, a3 ) {}
  210.  
  211.     template<class V> void accept(V & v) const
  212.     {
  213.         inherited::accept(v);
  214.     }
  215.  
  216.     static mars_boost::arg<I> a4_() { return mars_boost::arg<I>(); }
  217. };
  218.  
  219. #endif
  220.  
  221. // 5
  222.  
  223. template<class A1, class A2, class A3, class A4, class A5> struct storage5: public storage4< A1, A2, A3, A4 >
  224. {
  225.     typedef storage4<A1, A2, A3, A4> inherited;
  226.  
  227.     storage5( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5 ): storage4<A1, A2, A3, A4>( a1, a2, a3, a4 ), a5_( a5 ) {}
  228.  
  229.     template<class V> void accept(V & v) const
  230.     {
  231.         inherited::accept(v);
  232.         BOOST_BIND_VISIT_EACH(v, a5_, 0);
  233.     }
  234.  
  235.     A5 a5_;
  236. };
  237.  
  238. #if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
  239.  
  240. template<class A1, class A2, class A3, class A4, int I> struct storage5< A1, A2, A3, A4, mars_boost::arg<I> >: public storage4< A1, A2, A3, A4 >
  241. {
  242.     typedef storage4<A1, A2, A3, A4> inherited;
  243.  
  244.     storage5( A1 a1, A2 a2, A3 a3, A4 a4, mars_boost::arg<I> ): storage4<A1, A2, A3, A4>( a1, a2, a3, a4 ) {}
  245.  
  246.     template<class V> void accept(V & v) const
  247.     {
  248.         inherited::accept(v);
  249.     }
  250.  
  251.     static mars_boost::arg<I> a5_() { return mars_boost::arg<I>(); }
  252. };
  253.  
  254. template<class A1, class A2, class A3, class A4, int I> struct storage5< A1, A2, A3, A4, mars_boost::arg<I> (*) () >: public storage4< A1, A2, A3, A4 >
  255. {
  256.     typedef storage4<A1, A2, A3, A4> inherited;
  257.  
  258.     storage5( A1 a1, A2 a2, A3 a3, A4 a4, mars_boost::arg<I> (*) () ): storage4<A1, A2, A3, A4>( a1, a2, a3, a4 ) {}
  259.  
  260.     template<class V> void accept(V & v) const
  261.     {
  262.         inherited::accept(v);
  263.     }
  264.  
  265.     static mars_boost::arg<I> a5_() { return mars_boost::arg<I>(); }
  266. };
  267.  
  268. #endif
  269.  
  270. // 6
  271.  
  272. template<class A1, class A2, class A3, class A4, class A5, class A6> struct storage6: public storage5< A1, A2, A3, A4, A5 >
  273. {
  274.     typedef storage5<A1, A2, A3, A4, A5> inherited;
  275.  
  276.     storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6 ): storage5<A1, A2, A3, A4, A5>( a1, a2, a3, a4, a5 ), a6_( a6 ) {}
  277.  
  278.     template<class V> void accept(V & v) const
  279.     {
  280.         inherited::accept(v);
  281.         BOOST_BIND_VISIT_EACH(v, a6_, 0);
  282.     }
  283.  
  284.     A6 a6_;
  285. };
  286.  
  287. #if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
  288.  
  289. template<class A1, class A2, class A3, class A4, class A5, int I> struct storage6< A1, A2, A3, A4, A5, mars_boost::arg<I> >: public storage5< A1, A2, A3, A4, A5 >
  290. {
  291.     typedef storage5<A1, A2, A3, A4, A5> inherited;
  292.  
  293.     storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, mars_boost::arg<I> ): storage5<A1, A2, A3, A4, A5>( a1, a2, a3, a4, a5 ) {}
  294.  
  295.     template<class V> void accept(V & v) const
  296.     {
  297.         inherited::accept(v);
  298.     }
  299.  
  300.     static mars_boost::arg<I> a6_() { return mars_boost::arg<I>(); }
  301. };
  302.  
  303. template<class A1, class A2, class A3, class A4, class A5, int I> struct storage6< A1, A2, A3, A4, A5, mars_boost::arg<I> (*) () >: public storage5< A1, A2, A3, A4, A5 >
  304. {
  305.     typedef storage5<A1, A2, A3, A4, A5> inherited;
  306.  
  307.     storage6( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, mars_boost::arg<I> (*) () ): storage5<A1, A2, A3, A4, A5>( a1, a2, a3, a4, a5 ) {}
  308.  
  309.     template<class V> void accept(V & v) const
  310.     {
  311.         inherited::accept(v);
  312.     }
  313.  
  314.     static mars_boost::arg<I> a6_() { return mars_boost::arg<I>(); }
  315. };
  316.  
  317. #endif
  318.  
  319. // 7
  320.  
  321. template<class A1, class A2, class A3, class A4, class A5, class A6, class A7> struct storage7: public storage6< A1, A2, A3, A4, A5, A6 >
  322. {
  323.     typedef storage6<A1, A2, A3, A4, A5, A6> inherited;
  324.  
  325.     storage7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7 ): storage6<A1, A2, A3, A4, A5, A6>( a1, a2, a3, a4, a5, a6 ), a7_( a7 ) {}
  326.  
  327.     template<class V> void accept(V & v) const
  328.     {
  329.         inherited::accept(v);
  330.         BOOST_BIND_VISIT_EACH(v, a7_, 0);
  331.     }
  332.  
  333.     A7 a7_;
  334. };
  335.  
  336. #if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
  337.  
  338. template<class A1, class A2, class A3, class A4, class A5, class A6, int I> struct storage7< A1, A2, A3, A4, A5, A6, mars_boost::arg<I> >: public storage6< A1, A2, A3, A4, A5, A6 >
  339. {
  340.     typedef storage6<A1, A2, A3, A4, A5, A6> inherited;
  341.  
  342.     storage7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, mars_boost::arg<I> ): storage6<A1, A2, A3, A4, A5, A6>( a1, a2, a3, a4, a5, a6 ) {}
  343.  
  344.     template<class V> void accept(V & v) const
  345.     {
  346.         inherited::accept(v);
  347.     }
  348.  
  349.     static mars_boost::arg<I> a7_() { return mars_boost::arg<I>(); }
  350. };
  351.  
  352. template<class A1, class A2, class A3, class A4, class A5, class A6, int I> struct storage7< A1, A2, A3, A4, A5, A6, mars_boost::arg<I> (*) () >: public storage6< A1, A2, A3, A4, A5, A6 >
  353. {
  354.     typedef storage6<A1, A2, A3, A4, A5, A6> inherited;
  355.  
  356.     storage7( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, mars_boost::arg<I> (*) () ): storage6<A1, A2, A3, A4, A5, A6>( a1, a2, a3, a4, a5, a6 ) {}
  357.  
  358.     template<class V> void accept(V & v) const
  359.     {
  360.         inherited::accept(v);
  361.     }
  362.  
  363.     static mars_boost::arg<I> a7_() { return mars_boost::arg<I>(); }
  364. };
  365.  
  366. #endif
  367.  
  368. // 8
  369.  
  370. template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8> struct storage8: public storage7< A1, A2, A3, A4, A5, A6, A7 >
  371. {
  372.     typedef storage7<A1, A2, A3, A4, A5, A6, A7> inherited;
  373.  
  374.     storage8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8 ): storage7<A1, A2, A3, A4, A5, A6, A7>( a1, a2, a3, a4, a5, a6, a7 ), a8_( a8 ) {}
  375.  
  376.     template<class V> void accept(V & v) const
  377.     {
  378.         inherited::accept(v);
  379.         BOOST_BIND_VISIT_EACH(v, a8_, 0);
  380.     }
  381.  
  382.     A8 a8_;
  383. };
  384.  
  385. #if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
  386.  
  387. template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, int I> struct storage8< A1, A2, A3, A4, A5, A6, A7, mars_boost::arg<I> >: public storage7< A1, A2, A3, A4, A5, A6, A7 >
  388. {
  389.     typedef storage7<A1, A2, A3, A4, A5, A6, A7> inherited;
  390.  
  391.     storage8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, mars_boost::arg<I> ): storage7<A1, A2, A3, A4, A5, A6, A7>( a1, a2, a3, a4, a5, a6, a7 ) {}
  392.  
  393.     template<class V> void accept(V & v) const
  394.     {
  395.         inherited::accept(v);
  396.     }
  397.  
  398.     static mars_boost::arg<I> a8_() { return mars_boost::arg<I>(); }
  399. };
  400.  
  401. template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, int I> struct storage8< A1, A2, A3, A4, A5, A6, A7, mars_boost::arg<I> (*) () >: public storage7< A1, A2, A3, A4, A5, A6, A7 >
  402. {
  403.     typedef storage7<A1, A2, A3, A4, A5, A6, A7> inherited;
  404.  
  405.     storage8( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, mars_boost::arg<I> (*) () ): storage7<A1, A2, A3, A4, A5, A6, A7>( a1, a2, a3, a4, a5, a6, a7 ) {}
  406.  
  407.     template<class V> void accept(V & v) const
  408.     {
  409.         inherited::accept(v);
  410.     }
  411.  
  412.     static mars_boost::arg<I> a8_() { return mars_boost::arg<I>(); }
  413. };
  414.  
  415. #endif
  416.  
  417. // 9
  418.  
  419. template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, class A9> struct storage9: public storage8< A1, A2, A3, A4, A5, A6, A7, A8 >
  420. {
  421.     typedef storage8<A1, A2, A3, A4, A5, A6, A7, A8> inherited;
  422.  
  423.     storage9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, A9 a9 ): storage8<A1, A2, A3, A4, A5, A6, A7, A8>( a1, a2, a3, a4, a5, a6, a7, a8 ), a9_( a9 ) {}
  424.  
  425.     template<class V> void accept(V & v) const
  426.     {
  427.         inherited::accept(v);
  428.         BOOST_BIND_VISIT_EACH(v, a9_, 0);
  429.     }
  430.  
  431.     A9 a9_;
  432. };
  433.  
  434. #if !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION )
  435.  
  436. template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, int I> struct storage9< A1, A2, A3, A4, A5, A6, A7, A8, mars_boost::arg<I> >: public storage8< A1, A2, A3, A4, A5, A6, A7, A8 >
  437. {
  438.     typedef storage8<A1, A2, A3, A4, A5, A6, A7, A8> inherited;
  439.  
  440.     storage9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, mars_boost::arg<I> ): storage8<A1, A2, A3, A4, A5, A6, A7, A8>( a1, a2, a3, a4, a5, a6, a7, a8 ) {}
  441.  
  442.     template<class V> void accept(V & v) const
  443.     {
  444.         inherited::accept(v);
  445.     }
  446.  
  447.     static mars_boost::arg<I> a9_() { return mars_boost::arg<I>(); }
  448. };
  449.  
  450. template<class A1, class A2, class A3, class A4, class A5, class A6, class A7, class A8, int I> struct storage9< A1, A2, A3, A4, A5, A6, A7, A8, mars_boost::arg<I> (*) () >: public storage8< A1, A2, A3, A4, A5, A6, A7, A8 >
  451. {
  452.     typedef storage8<A1, A2, A3, A4, A5, A6, A7, A8> inherited;
  453.  
  454.     storage9( A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8, mars_boost::arg<I> (*) () ): storage8<A1, A2, A3, A4, A5, A6, A7, A8>( a1, a2, a3, a4, a5, a6, a7, a8 ) {}
  455.  
  456.     template<class V> void accept(V & v) const
  457.     {
  458.         inherited::accept(v);
  459.     }
  460.  
  461.     static mars_boost::arg<I> a9_() { return mars_boost::arg<I>(); }
  462. };
  463.  
  464. #endif
  465.  
  466. } // namespace _bi
  467.  
  468. } // namespace mars_boost
  469.  
  470. #ifdef BOOST_MSVC
  471. # pragma warning(default: 4512) // assignment operator could not be generated
  472. # pragma warning(pop)
  473. #endif
  474.  
  475. #endif // #ifndef BOOST_BIND_STORAGE_HPP_INCLUDED
  476.  
downloadstorage.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