Go to the documentation of this file. 11 #if !defined(BOOST_CIRCULAR_BUFFER_HPP) 12 #define BOOST_CIRCULAR_BUFFER_HPP 14 #if defined(_MSC_VER) && _MSC_VER >= 1200 18 #include <boost/circular_buffer_fwd.hpp> 19 #include <boost/detail/workaround.hpp> 22 #ifndef BOOST_CB_ENABLE_DEBUG 23 #define BOOST_CB_ENABLE_DEBUG 0 27 #if BOOST_CB_ENABLE_DEBUG 28 #include <boost/assert.hpp> 29 #define BOOST_CB_ASSERT(Expr) BOOST_ASSERT(Expr) 31 #define BOOST_CB_ASSERT(Expr) ((void)0) 35 #if BOOST_WORKAROUND(BOOST_MSVC, < 1300) 36 #define BOOST_CB_STATIC_ASSERT(Expr) ((void)0) 38 #include <boost/static_assert.hpp> 39 #define BOOST_CB_STATIC_ASSERT(Expr) BOOST_STATIC_ASSERT(Expr) 43 #if BOOST_WORKAROUND(__BORLANDC__, <= 0x0550) || BOOST_WORKAROUND(__MWERKS__, <= 0x2407) || \ 44 BOOST_WORKAROUND(BOOST_MSVC, < 1300) 45 #define BOOST_CB_IS_CONVERTIBLE(Iterator, Type) ((void)0) 47 #include <boost/detail/iterator.hpp> 48 #include <boost/type_traits/is_convertible.hpp> 49 #define BOOST_CB_IS_CONVERTIBLE(Iterator, Type) \ 50 BOOST_CB_STATIC_ASSERT((is_convertible<typename detail::iterator_traits<Iterator>::value_type, Type>::value)) 55 #if defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS) 56 #define BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS BOOST_CB_STATIC_ASSERT(false); 58 #define BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS ((void)0); 61 #include <boost/circular_buffer/debug.hpp> 62 #include <boost/circular_buffer/details.hpp> 63 #include <boost/circular_buffer/base.hpp> 64 #include <boost/circular_buffer/space_optimized.hpp> 66 #undef BOOST_CB_ASSERT_TEMPLATED_ITERATOR_CONSTRUCTORS 67 #undef BOOST_CB_IS_CONVERTIBLE 68 #undef BOOST_CB_STATIC_ASSERT 69 #undef BOOST_CB_ASSERT 70 #undef BOOST_CB_ENABLE_DEBUG 72 #endif // #if !defined(BOOST_CIRCULAR_BUFFER_HPP)