BVB Source Codes

mars Show interoperable.hpp Source code

Return Download mars: download interoperable.hpp Source code - Download mars Source code - Type:.hpp
  1. // (C) Copyright David Abrahams 2002.
  2. // (C) Copyright Jeremy Siek    2002.
  3. // (C) Copyright Thomas Witt    2002.
  4. // Distributed under the Boost Software License, Version 1.0. (See
  5. // accompanying file LICENSE_1_0.txt or copy at
  6. // http://www.boost.org/LICENSE_1_0.txt)
  7. #ifndef BOOST_INTEROPERABLE_23022003THW_HPP
  8. # define BOOST_INTEROPERABLE_23022003THW_HPP
  9.  
  10. # include <boost/mpl/bool.hpp>
  11. # include <boost/mpl/or.hpp>
  12.  
  13. # include <boost/type_traits/is_convertible.hpp>
  14.  
  15. # include <boost/iterator/detail/config_def.hpp> // must appear last
  16.  
  17. namespace mars_boost {} namespace boost = mars_boost; namespace mars_boost {
  18. namespace iterators {
  19.  
  20.   //
  21.   // Meta function that determines whether two
  22.   // iterator types are considered interoperable.
  23.   //
  24.   // Two iterator types A,B are considered interoperable if either
  25.   // A is convertible to B or vice versa.
  26.   // This interoperability definition is in sync with the
  27.   // standards requirements on constant/mutable container
  28.   // iterators (23.1 [lib.container.requirements]).
  29.   //
  30.   // For compilers that don't support is_convertible
  31.   // is_interoperable gives false positives. See comments
  32.   // on operator implementation for consequences.
  33.   //
  34.   template <typename A, typename B>
  35.   struct is_interoperable
  36. # ifdef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY
  37.     : mpl::true_
  38. # else
  39.     : mpl::or_<
  40.           is_convertible< A, B >
  41.         , is_convertible< B, A > >
  42. # endif
  43.   {
  44.   };
  45.  
  46. } // namespace iterators
  47.  
  48. using iterators::is_interoperable;
  49.  
  50. } // namespace mars_boost
  51.  
  52. # include <boost/iterator/detail/config_undef.hpp>
  53.  
  54. #endif // BOOST_INTEROPERABLE_23022003THW_HPP
  55.  
downloadinteroperable.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