1 //////////////////////////////////////////////////////////////////////////////
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)
7 // See http://www.boost.org/libs/container for documentation.
9 //////////////////////////////////////////////////////////////////////////////
11 #ifndef BOOST_CONTAINER_DETAIL_STD_FWD_HPP
12 #define BOOST_CONTAINER_DETAIL_STD_FWD_HPP
14 #ifndef BOOST_CONFIG_HPP
15 # include <boost/config.hpp>
18 #if defined(BOOST_HAS_PRAGMA_ONCE)
22 //////////////////////////////////////////////////////////////////////////////
23 // Standard predeclarations
24 //////////////////////////////////////////////////////////////////////////////
26 #if defined(_LIBCPP_VERSION)
27 #define BOOST_CONTAINER_CLANG_INLINE_STD_NS
28 #pragma GCC diagnostic push
29 #if defined(__clang__)
30 #pragma GCC diagnostic ignored "-Wc++11-extensions"
32 #define BOOST_CONTAINER_STD_NS_BEG _LIBCPP_BEGIN_NAMESPACE_STD
33 #define BOOST_CONTAINER_STD_NS_END _LIBCPP_END_NAMESPACE_STD
34 #elif defined(BOOST_GNU_STDLIB) && defined(_GLIBCXX_BEGIN_NAMESPACE_VERSION) //GCC >= 4.6
35 #define BOOST_CONTAINER_STD_NS_BEG namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION
36 #define BOOST_CONTAINER_STD_NS_END _GLIBCXX_END_NAMESPACE_VERSION } // namespace
37 #elif defined(BOOST_GNU_STDLIB) && defined(_GLIBCXX_BEGIN_NAMESPACE) //GCC >= 4.2
38 #define BOOST_CONTAINER_STD_NS_BEG _GLIBCXX_BEGIN_NAMESPACE(std)
39 #define BOOST_CONTAINER_STD_NS_END _GLIBCXX_END_NAMESPACE
41 #define BOOST_CONTAINER_STD_NS_BEG namespace std{
42 #define BOOST_CONTAINER_STD_NS_END }
45 BOOST_CONTAINER_STD_NS_BEG
53 template<class T1, class T2>
59 struct input_iterator_tag;
60 struct forward_iterator_tag;
61 struct bidirectional_iterator_tag;
62 struct random_access_iterator_tag;
64 template<class Container>
65 class insert_iterator;
67 struct allocator_arg_t;
69 BOOST_CONTAINER_STD_NS_END
71 #ifdef BOOST_CONTAINER_CLANG_INLINE_STD_NS
72 #pragma GCC diagnostic pop
73 #undef BOOST_CONTAINER_CLANG_INLINE_STD_NS
74 #endif //BOOST_CONTAINER_CLANG_INLINE_STD_NS
76 #endif //#ifndef BOOST_CONTAINER_DETAIL_STD_FWD_HPP