virtual bool do_is_equal(const memory_resource& other) const noexcept = 0;
概要
今のオブジェクト(this
)で確保(allocate
)したメモリ領域が、other
によって解放(deallocate
)でき、その逆も可能かをチェックする。
引数
other
-- チェックするmemory_resource
オブジェクト
戻り値
this->allocate()
で確保したメモリ領域をother.deallocate()
で問題なく解放でき、その逆も可能な場合にtrue
を返す。
this
とother
の指すオブジェクトは必ずしも同じ型ではない可能性があるので、実装ではdynamic_cast
によってthis
とother
の指すオブジェクトの型が一致することをチェックし、さもなければ直ちにfalse
を返す必要がある。
つまり、あるmemory_resource
の実装(派生クラス)D
はこの関数実装内で最初にdynamic_cast<const D*>(&other) == nullptr
をチェックし、結果がtrue
ならば直ちにfalse
を返すようにする必要がある。
バージョン
言語
- C++17
処理系
- Clang: ??
- GCC: 9.1 ✅
- Visual C++: 2017 update 6 ✅