ポリモーフィックアロケーターのソースはちょっと長めですが memory_resource を指すポインターを保持し、そのポインターから allocate() 関数等にアクセスをすることができます。
ポリモーフィックの意味はどの memory_resource を使うかをコンパイル時に固定しないで、ランタイムに決定できる性質を指します。
基本的な使い方としては複数の memory_resource のポインターを用意しておいて polymorphic_allocator クラスのメンバーとして設定します。
116 template <class _Tp> 117 class polymorphic_allocator 118 { //中略 244 memory_resource* _M_resource; 245 };
つまり _M_resource がアロケーターの役割を持つってことで polymorphic_allocator はメモリー割り当てのインターフェースとなります。
Copyright 2018-2019, by Masaki Komatsu