diff options
| author | Remko Tronçon <git@el-tramo.be> | 2009-06-01 08:48:42 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2009-06-01 09:24:28 (GMT) | 
| commit | 2812bddd81f8a1b804c7460f4e14cd0aa393d129 (patch) | |
| tree | d46294f35150c4f0f43deaf2d31fceaf945ae715 /3rdParty/Boost/boost/iterator/interoperable.hpp | |
| download | swift-2812bddd81f8a1b804c7460f4e14cd0aa393d129.zip swift-2812bddd81f8a1b804c7460f4e14cd0aa393d129.tar.bz2 | |
Import.
Diffstat (limited to '3rdParty/Boost/boost/iterator/interoperable.hpp')
| -rw-r--r-- | 3rdParty/Boost/boost/iterator/interoperable.hpp | 50 | 
1 files changed, 50 insertions, 0 deletions
| diff --git a/3rdParty/Boost/boost/iterator/interoperable.hpp b/3rdParty/Boost/boost/iterator/interoperable.hpp new file mode 100644 index 0000000..c13dd9b --- /dev/null +++ b/3rdParty/Boost/boost/iterator/interoperable.hpp @@ -0,0 +1,50 @@ +// (C) Copyright David Abrahams 2002. +// (C) Copyright Jeremy Siek    2002. +// (C) Copyright Thomas Witt    2002. +// Distributed under the Boost Software License, Version 1.0. (See +// accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +#ifndef BOOST_INTEROPERABLE_23022003THW_HPP +# define BOOST_INTEROPERABLE_23022003THW_HPP + +# include <boost/mpl/bool.hpp> +# include <boost/mpl/or.hpp> + +# include <boost/type_traits/is_convertible.hpp> + +# include <boost/iterator/detail/config_def.hpp> // must appear last + +namespace boost +{ + +  // +  // Meta function that determines whether two +  // iterator types are considered interoperable. +  // +  // Two iterator types A,B are considered interoperable if either +  // A is convertible to B or vice versa. +  // This interoperability definition is in sync with the +  // standards requirements on constant/mutable container +  // iterators (23.1 [lib.container.requirements]). +  // +  // For compilers that don't support is_convertible  +  // is_interoperable gives false positives. See comments +  // on operator implementation for consequences. +  // +  template <typename A, typename B> +  struct is_interoperable +# ifdef BOOST_NO_STRICT_ITERATOR_INTEROPERABILITY +    : mpl::true_ +# else +    : mpl::or_< +          is_convertible< A, B > +        , is_convertible< B, A > > +# endif +  {  +  }; + +} // namespace boost + +# include <boost/iterator/detail/config_undef.hpp> + +#endif // BOOST_INTEROPERABLE_23022003THW_HPP | 
 Swift
 Swift