最終更新日時(UTC):
が更新

履歴 編集

function
<memory_resource>

std::pmr::memory_resource::do_is_equal(C++17)

virtual bool do_is_equal(const memory_resource& other) const noexcept = 0;

概要

今のオブジェクト(this)で確保(allocate)したメモリ領域が、otherによって解放(deallocate)でき、その逆も可能かをチェックする。

引数

  • other -- チェックするmemory_resourceオブジェクト

戻り値

this->allocate()で確保したメモリ領域をother.deallocate()で問題なく解放でき、その逆も可能な場合にtrueを返す。

thisotherの指すオブジェクトは必ずしも同じ型ではない可能性があるので、実装ではdynamic_castによってthisotherの指すオブジェクトの型が一致することをチェックし、さもなければ直ちにfalseを返す必要がある。

つまり、あるmemory_resourceの実装(派生クラス)Dはこの関数実装内で最初にdynamic_cast<const D*>(&other) == nullptrをチェックし、結果がtrueならば直ちにfalseを返すようにする必要がある。

バージョン

言語

  • C++17

処理系

関連項目