// (C) Copyright Daniel James 2005. // Use, modification and distribution are subject to 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) #if !defined(BOOST_DETAIL_CONTAINER_FWD_HPP) #define BOOST_DETAIL_CONTAINER_FWD_HPP #include #include #include #if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) && \ defined(__STL_CONFIG_H) #define BOOST_CONTAINER_FWD_BAD_BITSET #if !defined(__STL_NON_TYPE_TMPL_PARAM_BUG) #define BOOST_CONTAINER_FWD_BAD_DEQUE #endif #endif #if defined(BOOST_CONTAINER_FWD_BAD_DEQUE) #include #endif #if defined(BOOST_CONTAINER_FWD_BAD_BITSET) #include #endif #if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) #define BOOST_HASH_CHAR_TRAITS string_char_traits #else #define BOOST_HASH_CHAR_TRAITS char_traits #endif namespace std { template class allocator; template class basic_string; template struct BOOST_HASH_CHAR_TRAITS; #if BOOST_WORKAROUND(__GNUC__, < 3) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) template class string_char_traits; #else template class char_traits; #endif template class complex; } // gcc 3.4 and greater #if defined(__GLIBCXX__) && defined(_GLIBCXX_DEBUG) namespace __gnu_debug_def #else namespace std #endif { #if !defined(BOOST_CONTAINER_FWD_BAD_DEQUE) template class deque; #endif template class list; template class vector; template class map; template class multimap; template class set; template class multiset; #if !defined(BOOST_CONTAINER_FWD_BAD_BITSET) template class bitset; #endif template struct pair; } #endif