BVB Source Codes

mars Show setup.hpp Source code

Return Download mars: download setup.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_SETUP_H
  8. #define BOOST_COROUTINES_DETAIL_SETUP_H
  9.  
  10. #include <boost/assert.hpp>
  11. #include <boost/config.hpp>
  12. #include <boost/move/move.hpp>
  13. #include <boost/type_traits/decay.hpp>
  14. #include <boost/type_traits/is_convertible.hpp>
  15. #include <boost/type_traits/is_same.hpp>
  16.  
  17. #include <boost/coroutine/attributes.hpp>
  18. #include <boost/coroutine/detail/coroutine_context.hpp>
  19. #include <boost/coroutine/detail/flags.hpp>
  20.  
  21. #ifdef BOOST_HAS_ABI_HEADERS
  22. #  include BOOST_ABI_PREFIX
  23. #endif
  24.  
  25. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost {
  26. namespace coroutines {
  27. namespace detail {
  28.  
  29. template< typename Fn >
  30. struct setup
  31. {
  32.     struct dummy {};
  33.  
  34.     Fn                      fn;
  35.     coroutine_context   *   caller;
  36.     coroutine_context   *   callee;
  37.     attributes              attr;
  38.  
  39. #ifdef BOOST_NO_CXX11_RVALUE_REFERENCES
  40.     setup( Fn fn_,
  41.            coroutine_context * caller_,
  42.            coroutine_context * callee_,
  43.            attributes const& attr_) :
  44.         fn( mars_boost::forward< Fn >( fn_) ),
  45.         caller( caller_),
  46.         callee( callee_),
  47.         attr( attr_)
  48.     {}
  49. #endif
  50.     setup( BOOST_RV_REF( Fn) fn_,
  51.            coroutine_context * caller_,
  52.            coroutine_context * callee_,
  53.            attributes const& attr_,
  54.            typename disable_if<
  55.                is_same< typename decay< Fn >::type, setup >,
  56.                dummy*
  57.            >::type = 0) :
  58. #ifdef BOOST_NO_CXX11_RVALUE_REFERENCES
  59.         fn( fn_),
  60. #else
  61.         fn( mars_boost::forward< Fn >( fn_) ),
  62. #endif
  63.         caller( caller_),
  64.         callee( callee_),
  65.         attr( attr_)
  66.     {}
  67. };
  68.  
  69. }}}
  70.  
  71. #ifdef BOOST_HAS_ABI_HEADERS
  72. #  include BOOST_ABI_SUFFIX
  73. #endif
  74.  
  75. #endif // BOOST_COROUTINES_DETAIL_SETUP_H
  76.  
downloadsetup.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