1 // Forward declaration of the circular buffer and its adaptor.
2 
3 // Copyright (c) 2003-2008 Jan Gaspar
4 
5 // Use, modification, and distribution is subject to the Boost Software
6 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt)
8 
9 //  See www.boost.org/libs/circular_buffer for documentation.
10 
11 #if !defined(BOOST_CIRCULAR_BUFFER_FWD_HPP)
12 #define BOOST_CIRCULAR_BUFFER_FWD_HPP
13 
14 #if defined(_MSC_VER)
15     #pragma once
16 #endif
17 
18 #include <boost/config.hpp>
19 #if !defined(BOOST_NO_STD_ALLOCATOR)
20     #include <memory>
21 #else
22     #include <vector>
23 #endif
24 
25 namespace boost {
26 
27 #if !defined(BOOST_NO_STD_ALLOCATOR)
28     #define BOOST_CB_DEFAULT_ALLOCATOR(T) std::allocator<T>
29 #else
30     #define BOOST_CB_DEFAULT_ALLOCATOR(T) BOOST_DEDUCED_TYPENAME std::vector<T>::allocator_type
31 #endif
32 
33 template <class T, class Alloc = BOOST_CB_DEFAULT_ALLOCATOR(T)>
34 class circular_buffer;
35 
36 template <class T, class Alloc = BOOST_CB_DEFAULT_ALLOCATOR(T)>
37 class circular_buffer_space_optimized;
38 
39 #undef BOOST_CB_DEFAULT_ALLOCATOR
40 
41 } // namespace boost
42 
43 #endif // #if !defined(BOOST_CIRCULAR_BUFFER_FWD_HPP)
44