EzoeRyou/cpp17book

043 memory_allocatorがdo_allocateを2回オーバーライド

Closed this issue · 1 comments

標準ライブラリのメモリーリソースのサンプルで定義しているmemory_allocator中で、do_allocateを2回オーバーライドしています。

    virtual void * 
    do_allocate( std::size_t bytes, std::size_t alignment ) override
    {
        std::scoped_lock lock( m ) ; 
        // リンクリストをたどり、十分な大きさの未使用領域を探し、リンクリスト構造体を構築して返す
        // アライメント要求に注意
    }

    virtual void * 
    do_allocate( std::size_t bytes, std::size_t alignment ) override
    {
        std::scoped_lock lock( m ) ;
        // リンクリストから該当する部分を削除
    }

後者はdo_deallocateのオーバーライドではないでしょうか。

直した。