1//////////////////////////////////////////////////////////////////////////////
2//
3// (C) Copyright Ion Gaztanaga 2014-2014. 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
11#ifndef BOOST_INTRUSIVE_DETAIL_STD_FWD_HPP
12#define BOOST_INTRUSIVE_DETAIL_STD_FWD_HPP
13
14#ifndef BOOST_CONFIG_HPP
15# include <boost/config.hpp>
16#endif
17
18#if defined(BOOST_HAS_PRAGMA_ONCE)
19# pragma once
20#endif
21
22//////////////////////////////////////////////////////////////////////////////
23// Standard predeclarations
24//////////////////////////////////////////////////////////////////////////////
25
26#if defined(__clang__) && defined(_LIBCPP_VERSION)
27 #define BOOST_INTRUSIVE_CLANG_INLINE_STD_NS
28 #pragma GCC diagnostic push
29 #pragma GCC diagnostic ignored "-Wc++11-extensions"
30 #define BOOST_INTRUSIVE_STD_NS_BEG _LIBCPP_BEGIN_NAMESPACE_STD
31 #define BOOST_INTRUSIVE_STD_NS_END _LIBCPP_END_NAMESPACE_STD
32#elif defined(BOOST_GNU_STDLIB) && defined(_GLIBCXX_BEGIN_NAMESPACE_VERSION) //GCC >= 4.6
33 #define BOOST_INTRUSIVE_STD_NS_BEG namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION
34 #define BOOST_INTRUSIVE_STD_NS_END _GLIBCXX_END_NAMESPACE_VERSION } // namespace
35#elif defined(BOOST_GNU_STDLIB) && defined(_GLIBCXX_BEGIN_NAMESPACE) //GCC >= 4.2
36 #define BOOST_INTRUSIVE_STD_NS_BEG _GLIBCXX_BEGIN_NAMESPACE(std)
37 #define BOOST_INTRUSIVE_STD_NS_END _GLIBCXX_END_NAMESPACE
38#else
39 #define BOOST_INTRUSIVE_STD_NS_BEG namespace std{
40 #define BOOST_INTRUSIVE_STD_NS_END }
41#endif
42
43BOOST_INTRUSIVE_STD_NS_BEG
44
45template<class T>
46struct less;
47
48template<class T>
49struct equal_to;
50
51struct input_iterator_tag;
52struct forward_iterator_tag;
53struct bidirectional_iterator_tag;
54struct random_access_iterator_tag;
55
56BOOST_INTRUSIVE_STD_NS_END
57
58#ifdef BOOST_INTRUSIVE_CLANG_INLINE_STD_NS
59 #pragma GCC diagnostic pop
60 #undef BOOST_INTRUSIVE_CLANG_INLINE_STD_NS
61#endif //BOOST_INTRUSIVE_CLANG_INLINE_STD_NS
62
63#endif //#ifndef BOOST_INTRUSIVE_DETAIL_STD_FWD_HPP
64