Boost.Container实战:编写扩展的bwd测试分配器程序
Boost.Container是一个开源的、高质量的C++容器库,提供了丰富的容器类型和算法,可以为我们编写高效、可靠的C++程序带来很大的便利。在使用Boost.Container时,我们通常需要为其提供适当的内存分配器,以满足特定的需求。本文将演示如何使用Boost.Container实现一个扩展的bwd测试分配器程序。
首先,我们需要定义一个继承自bwd_allocator的分配器类BwdAllocator,并实现其中的allocate和deallocate方法。这里我们简单地将所分配/释放的内存块大小打印出来以便进行后续的调试。
#include <boost/container/allocator.hpp>
#include <iostream>
template <typename T>
class BwdAllocator : public boost::container::bwd_allocator<T>
{
public:
using Base = boost::container::bwd_allocator<T>;
template <typename U>
struct rebind
{
typedef BwdAllocator<U> other;
};
pointer allocate(size_type n, const_void_pointer hint = 0)
{
std::cout << "Allocating " << n * sizeof(T) << " bytes" << std::endl;
return