// Copyright 2005-2007 Daniel James. // Distributed under 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 #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 #if (defined(__GLIBCXX__) && defined(_GLIBCXX_DEBUG)) \ || BOOST_WORKAROUND(__BORLANDC__, > 0x551) \ || BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x842)) \ || (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) #include #include #include #include #include #include #include #include #else #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 defined(BOOST_MSVC) #pragma warning(push) #pragma warning(disable:4099) // struct/class mismatch in fwd declarations #endif namespace std { template class allocator; template class basic_string; template struct BOOST_HASH_CHAR_TRAITS; template class complex; } // gcc 3.4 and greater namespace std { #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; } #if defined(BOOST_MSVC) #pragma warning(pop) #endif #endif #endif