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 | |
43 | BOOST_INTRUSIVE_STD_NS_BEG |
44 | |
45 | template<class T> |
46 | struct less; |
47 | |
48 | template<class T> |
49 | struct equal_to; |
50 | |
51 | struct input_iterator_tag; |
52 | struct forward_iterator_tag; |
53 | struct bidirectional_iterator_tag; |
54 | struct random_access_iterator_tag; |
55 | |
56 | BOOST_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 | |