boost/lockfree/lockfree_forward.hpp
// Copyright (C) 2008-2016 Tim Blechmann
//
// 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)
#ifndef BOOST_LOCKFREE_FORWARD_HPP_INCLUDED
#define BOOST_LOCKFREE_FORWARD_HPP_INCLUDED
#ifndef BOOST_DOXYGEN_INVOKED
# include <cstddef>
# include <type_traits>
# include <boost/config.hpp>
namespace boost { namespace lockfree {
// policies
template < bool IsFixedSized >
struct fixed_sized;
template < size_t Size >
struct capacity;
template < class Alloc >
struct allocator;
// data structures
template < typename T, typename... Options >
# if !defined( BOOST_NO_CXX20_HDR_CONCEPTS )
requires( std::is_copy_assignable_v< T >,
std::is_trivially_assignable_v< T&, T >,
std::is_trivially_destructible_v< T > )
# endif
class queue;
template < typename T, typename... Options >
# if !defined( BOOST_NO_CXX20_HDR_CONCEPTS )
requires( std::is_copy_assignable_v< T > || std::is_move_assignable_v< T > )
# endif
class stack;
template < typename T, typename... Options >
# if !defined( BOOST_NO_CXX20_HDR_CONCEPTS )
requires( std::is_default_constructible_v< T >, std::is_move_assignable_v< T > || std::is_copy_assignable_v< T > )
# endif
class spsc_queue;
}} // namespace boost::lockfree
#endif // BOOST_DOXYGEN_INVOKED
#endif // BOOST_LOCKFREE_FORWARD_HPP_INCLUDED