1// (C) Copyright David Abrahams 2002.
2// Distributed under the Boost Software License, Version 1.0. (See
3// accompanying file LICENSE_1_0.txt or copy at
4// http://www.boost.org/LICENSE_1_0.txt)
5
6#ifndef ITERATOR_DWA122600_HPP_
7#define ITERATOR_DWA122600_HPP_
8
9// This header is obsolete and will be deprecated.
10
11#include <iterator>
12#if defined(__SUNPRO_CC) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))
13#include <cstddef>
14#endif
15
16namespace boost
17{
18
19namespace detail
20{
21
22using std::iterator_traits;
23using std::distance;
24
25#if defined(__SUNPRO_CC) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))
26// std::distance from stlport with Oracle compiler 12.4 and 12.5 fails to deduce template parameters
27// when one of the arguments is an array and the other one is a pointer.
28template< typename T, std::size_t N >
29inline typename std::iterator_traits< T* >::difference_type distance(T (&left)[N], T* right)
30{
31 return std::distance(static_cast< T* >(left), right);
32}
33#endif
34
35} // namespace detail
36
37} // namespace boost
38
39#endif // ITERATOR_DWA122600_HPP_
40