From 75aeb563ae2c58ded54e96a442321983ff0fde13 Mon Sep 17 00:00:00 2001 From: Daniel James Date: Tue, 14 Aug 2012 20:06:07 +0000 Subject: [PATCH] Hash: Remove C++11 forward declarations. It seems that on Visual C++ Dinkumware declares shared_ptr in std, but for Intel C++ it imports it from std::tr1. I was thinking of doing a macro check for this, but since we're close to release, just change it to always include the headers and never forward declare the C++11 classes, which is much safer. I might restore the forward declarations in the future, although I'm tempted not to. I'm not sure the improvement in compile time is worth the hassle. [SVN r80038] --- .../hash/detail/container_fwd_0x.hpp | 32 ++----------------- 1 file changed, 3 insertions(+), 29 deletions(-) diff --git a/include/boost/functional/hash/detail/container_fwd_0x.hpp b/include/boost/functional/hash/detail/container_fwd_0x.hpp index 4e2dd7e..bed7730 100644 --- a/include/boost/functional/hash/detail/container_fwd_0x.hpp +++ b/include/boost/functional/hash/detail/container_fwd_0x.hpp @@ -11,45 +11,19 @@ // std::array #if !defined(BOOST_NO_CXX11_HDR_ARRAY) - // Don't forward declare std::array for Dinkumware, as it seems to be - // just 'using std::tr1::array'. -# if (defined(BOOST_DETAIL_NO_CONTAINER_FWD) && \ - !defined(BOOST_DETAIL_TEST_FORCE_CONTAINER_FWD)) || \ - (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) -# include -# else -namespace std { - template class array; -} -# endif +# include #endif // std::tuple #if !defined(BOOST_NO_CXX11_HDR_TUPLE) -# if (defined(BOOST_DETAIL_NO_CONTAINER_FWD) && \ - !defined(BOOST_DETAIL_TEST_FORCE_CONTAINER_FWD)) || \ - defined(BOOST_NO_VARIADIC_TEMPLATES) -# include -# else -namespace std { - template class tuple; -} -# endif +# include #endif // std::shared_ptr/std::unique_ptr #if !defined(BOOST_NO_CXX11_HDR_MEMORY) -# if (defined(BOOST_DETAIL_NO_CONTAINER_FWD) && \ - !defined(BOOST_DETAIL_TEST_FORCE_CONTAINER_FWD)) -# include -# else -namespace std { - template class shared_ptr; - template class unique_ptr; -} -# endif +# include #endif #endif