BVB Source Codes

mars Show iterator_to_raw_pointer.hpp Source code

Return Download mars: download iterator_to_raw_pointer.hpp Source code - Download mars Source code - Type:.hpp
  1. //////////////////////////////////////////////////////////////////////////////
  2. //
  3. // (C) Copyright Ion Gaztanaga 2014-2015. Distributed under the Boost
  4. // Software License, Version 1.0. (See accompanying file
  5. // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  6. //
  7. // See http://www.boost.org/libs/container for documentation.
  8. //
  9. //////////////////////////////////////////////////////////////////////////////
  10. #ifndef BOOST_CONTAINER_DETAIL_ITERATOR_TO_RAW_POINTER_HPP
  11. #define BOOST_CONTAINER_DETAIL_ITERATOR_TO_RAW_POINTER_HPP
  12.  
  13. #ifndef BOOST_CONFIG_HPP
  14. #  include <boost/config.hpp>
  15. #endif
  16.  
  17. #if defined(BOOST_HAS_PRAGMA_ONCE)
  18. #  pragma once
  19. #endif
  20.  
  21. #include <boost/container/detail/iterator.hpp>
  22. #include <boost/container/detail/to_raw_pointer.hpp>
  23. #include <boost/intrusive/pointer_traits.hpp>
  24.  
  25. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost {
  26. namespace container {
  27. namespace container_detail {
  28.  
  29. template <class T>
  30. inline T* iterator_to_pointer(T* i)
  31. {  return i; }
  32.  
  33. template <class Iterator>
  34. inline typename mars_boost::container::iterator_traits<Iterator>::pointer
  35.    iterator_to_pointer(const Iterator &i)
  36. {  return i.operator->();  }
  37.  
  38. template <class Iterator>
  39. struct iterator_to_element_ptr
  40. {
  41.    typedef typename mars_boost::container::iterator_traits<Iterator>::pointer      pointer;
  42.    typedef typename mars_boost::intrusive::pointer_traits<pointer>::element_type   element_type;
  43.    typedef element_type* type;
  44. };
  45.  
  46. template <class Iterator>
  47. inline typename iterator_to_element_ptr<Iterator>::type
  48.    iterator_to_raw_pointer(const Iterator &i)
  49. {
  50.    return ::mars_boost::intrusive::detail::to_raw_pointer
  51.       (  ::mars_boost::container::container_detail::iterator_to_pointer(i)   );
  52. }
  53.  
  54. }  //namespace container_detail {
  55. }  //namespace container {
  56. }  //namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost {
  57.  
  58. #endif   //#ifndef BOOST_CONTAINER_DETAIL_ITERATOR_TO_RAW_POINTER_HPP
  59.  
downloaditerator_to_raw_pointer.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