File indexing completed on 2025-09-16 08:37:46
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef BOOST_LOCKFREE_FORWARD_HPP_INCLUDED
0009 #define BOOST_LOCKFREE_FORWARD_HPP_INCLUDED
0010
0011 #include <boost/config.hpp>
0012 #ifdef BOOST_HAS_PRAGMA_ONCE
0013 # pragma once
0014 #endif
0015
0016
0017 #ifndef BOOST_DOXYGEN_INVOKED
0018
0019 # include <cstddef>
0020 # if !defined( BOOST_NO_CXX20_HDR_CONCEPTS )
0021 # include <type_traits>
0022 # endif
0023
0024 namespace boost { namespace lockfree {
0025
0026
0027 template < bool IsFixedSized >
0028 struct fixed_sized;
0029
0030 template < size_t Size >
0031 struct capacity;
0032
0033 template < class Alloc >
0034 struct allocator;
0035
0036
0037
0038
0039 template < typename T, typename... Options >
0040 # if !defined( BOOST_NO_CXX20_HDR_CONCEPTS )
0041 requires( std::is_copy_assignable_v< T >,
0042 std::is_trivially_assignable_v< T&, T >,
0043 std::is_trivially_destructible_v< T > )
0044 # endif
0045 class queue;
0046
0047 template < typename T, typename... Options >
0048 # if !defined( BOOST_NO_CXX20_HDR_CONCEPTS )
0049 requires( std::is_copy_assignable_v< T > || std::is_move_assignable_v< T > )
0050 # endif
0051 class stack;
0052
0053 template < typename T, typename... Options >
0054 # if !defined( BOOST_NO_CXX20_HDR_CONCEPTS )
0055 requires( std::is_default_constructible_v< T >, std::is_move_assignable_v< T > || std::is_copy_assignable_v< T > )
0056 # endif
0057 class spsc_queue;
0058
0059 template < typename T, typename... Options >
0060 struct spsc_value;
0061
0062 }}
0063
0064 #endif
0065 #endif