#ifndef BMFWD__H__INCLUDED__
#define BMFWD__H__INCLUDED__
#include <stddef.h>
#include "bmconst.h"
namespace bm
{
class block_allocator;
class ptr_allocator;
template<class BA, class PA> class alloc_pool;
typedef bm::alloc_pool<block_allocator, ptr_allocator> standard_alloc_pool;
template<class BA = block_allocator, class PA = ptr_allocator, class APool = standard_alloc_pool > class mem_alloc;
template <class A, size_t N> class miniset;
template<size_t N> class bvmini;
typedef bm::mem_alloc<block_allocator, ptr_allocator, standard_alloc_pool> standard_allocator;
template<class A = bm::standard_allocator> class bvector;
template<class A = bm::standard_allocator> class rs_index;
template<typename Val, typename BVAlloc, bool trivial_type> class heap_vector;
template<typename Val, size_t ROWS, size_t COLS, typename BVAlloc> class heap_matrix;
template<typename Val, typename BVAlloc> class dynamic_heap_matrix;
template<typename BV> class aggregator;
template<typename BV> class rank_compressor;
template<typename BV> class basic_bmatrix;
template<typename BV, typename DEC> class deserializer;
template<class Val, class BV> class sparse_vector;
template<class Val, class SV> class rsc_sparse_vector;
template<class SVect> class sparse_vector_scanner;
template<class SVect> class sparse_vector_serializer;
template<class SVect> class sparse_vector_deserializer;
struct block_waves_xor_descr;
}
#endif