BVB Source Codes

mars Show parameters.hpp Source code

Return Download mars: download parameters.hpp Source code - Download mars Source code - Type:.hpp
  1.  
  2. //          Copyright Oliver Kowalke 2009.
  3. // Distributed under the Boost Software License, Version 1.0.
  4. //    (See accompanying file LICENSE_1_0.txt or copy at
  5. //          http://www.boost.org/LICENSE_1_0.txt)
  6.  
  7. #ifndef BOOST_COROUTINES_DETAIL_PARAMETERS_H
  8. #define BOOST_COROUTINES_DETAIL_PARAMETERS_H
  9.  
  10. #include <boost/assert.hpp>
  11. #include <boost/config.hpp>
  12.  
  13. #include <boost/coroutine/detail/flags.hpp>
  14.  
  15. #ifdef BOOST_HAS_ABI_HEADERS
  16. #  include BOOST_ABI_PREFIX
  17. #endif
  18.  
  19. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost {
  20. namespace coroutines {
  21. namespace detail {
  22.  
  23. template< typename Data >
  24. struct parameters
  25. {
  26.     Data                *   data;
  27.     bool                    do_unwind;
  28.     void                *   coro;
  29.  
  30.     parameters() :
  31.         data( 0), do_unwind( false), coro( 0)
  32.     {}
  33.  
  34.     explicit parameters( void * coro_) :
  35.         data( 0), do_unwind( false), coro( coro_)
  36.     { BOOST_ASSERT( 0 != coro); }
  37.  
  38.     explicit parameters( Data * data_, void * coro_) :
  39.         data( data_), do_unwind( false), coro( coro_)
  40.     {
  41.         BOOST_ASSERT( 0 != data);
  42.         BOOST_ASSERT( 0 != coro);
  43.     }
  44.  
  45.     explicit parameters( unwind_t::flag_t) :
  46.         data( 0), do_unwind( true)
  47.     {}
  48. };
  49.  
  50. template< typename Data >
  51. struct parameters< Data & >
  52. {
  53.     Data                *   data;
  54.     bool                    do_unwind;
  55.     void                *   coro;
  56.  
  57.     parameters() :
  58.         data( 0), do_unwind( false), coro( 0)
  59.     {}
  60.  
  61.     explicit parameters( void * coro_) :
  62.         data( 0), do_unwind( false), coro( coro_)
  63.     { BOOST_ASSERT( 0 != coro); }
  64.  
  65.     explicit parameters( Data * data_, void * coro_) :
  66.         data( data_), do_unwind( false), coro( coro_)
  67.     {
  68.         BOOST_ASSERT( 0 != data);
  69.         BOOST_ASSERT( 0 != coro);
  70.     }
  71.  
  72.     explicit parameters( unwind_t::flag_t) :
  73.         data( 0), do_unwind( true), coro( 0)
  74.     {}
  75. };
  76.  
  77. template<>
  78. struct parameters< void >
  79. {
  80.     bool                    do_unwind;
  81.     void                *   coro;
  82.  
  83.     parameters() :
  84.         do_unwind( false), coro(0)
  85.     {}
  86.  
  87.     parameters( void * coro_) :
  88.         do_unwind( false), coro( coro_)
  89.     { BOOST_ASSERT( 0 != coro); }
  90.  
  91.     explicit parameters( unwind_t::flag_t) :
  92.         do_unwind( true), coro( 0)
  93.     {}
  94. };
  95.  
  96. }}}
  97.  
  98. #ifdef BOOST_HAS_ABI_HEADERS
  99. #  include BOOST_ABI_SUFFIX
  100. #endif
  101.  
  102. #endif // BOOST_COROUTINES_DETAIL_PARAMETERS_H
  103.  
downloadparameters.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