BVB Source Codes

mars Show apply.hpp Source code

Return Download mars: download apply.hpp Source code - Download mars Source code - Type:.hpp
  1.  
  2. //          Copyright Oliver Kowalke 2014.
  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_CONTEXT_DETAIL_APPLY_H
  8. #define BOOST_CONTEXT_DETAIL_APPLY_H
  9.  
  10. #include <functional>
  11. #include <tuple>
  12. #include <type_traits>
  13. #include <utility>
  14.  
  15. #include <boost/config.hpp>
  16.  
  17. #include <boost/context/detail/config.hpp>
  18. #include <boost/context/detail/invoke.hpp>
  19. #include <boost/context/detail/index_sequence.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 context {
  27. namespace detail {
  28.  
  29. template< typename Fn, typename Tpl, std::size_t ... I >
  30. auto
  31. apply_impl( Fn && fn, Tpl && tpl, index_sequence< I ... >)
  32.     -> decltype( invoke( std::forward< Fn >( fn), std::get< I >( std::forward< Tpl >( tpl) ) ... ) )
  33. {
  34.     return invoke( std::forward< Fn >( fn), std::get< I >( std::forward< Tpl >( tpl) ) ... );
  35. }
  36.  
  37. template< typename Fn, typename Tpl >
  38. auto
  39. apply( Fn && fn, Tpl && tpl)
  40.     -> decltype( apply_impl( std::forward< Fn >( fn),
  41.                  std::forward< Tpl >( tpl),
  42.                  make_index_sequence< std::tuple_size< typename std::decay< Tpl >::type >::value >{}) )
  43. {
  44.     return apply_impl( std::forward< Fn >( fn),
  45.                        std::forward< Tpl >( tpl),
  46.                        make_index_sequence< std::tuple_size< typename std::decay< Tpl >::type >::value >{});
  47. }
  48.  
  49. }}}
  50.  
  51. #ifdef BOOST_HAS_ABI_HEADERS
  52. #include BOOST_ABI_SUFFIX
  53. #endif
  54.  
  55. #endif // BOOST_CONTEXT_DETAIL_APPLY_H
  56.  
downloadapply.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