前のページ次のページ上に戻るホーム SophiaFramework UNIVERSE 5.3
SFXHeap
ヒープ を表すクラスです。
#include <SFXHeap.h.hpp>
class SFXHeap;
SFMTYPEDEFCLASS(SFXHeap)

継承図

SFXHeap クラスの継承図

協調図

SFXHeap クラスの協調図

解説

SFXHeap クラスと SFXClusterHeap クラス

SFXHeap クラスと SFXClusterHeap クラスは、動的なヒープ管理を提供するクラスです。

SFXClusterHeap クラスはブロックアロケーションを行いますが、SFXHeap クラスはブロックアロケーションを行いません。

ヒープサイズの変更頻度が少ない場合、SFXHeap クラスを使う方がメモリ効率が良くなります。

Attach 関数 と Detach 関数

SFXHeap::Attach 関数は、 指定された領域を SFXHeap オブジェクトに結び付けます。 SFXHeap::Detach 関数はその逆の操作を行います。

例 830. Attach 関数の使用方法

SFXHeap<SInt16> heap;
VoidPtr swap;

// メモリを割り当てる
swap = MemoryAllocate(10240); 
...

// swap に割り当てた領域を heap オブジェクトに結びつける
heap.Attach(swap, 10240);
// 以降、swap に割り当てた領域は heap オブジェクトとして操作できる

・・・

// 使用後、割り当てたメモリは自動的に解放される 

例 831. Detach 関数の使用方法

SFXHeap heap;
VoidPtr swap;
UInt32 length;

...

// heap オブジェクトが管理するヒープ領域を切り離し、その領域のポインタを swap に設定する
// 領域のサイズは length に格納される
swap = heap.Detach(&length);
// 以降、heap オブジェクトのヒープ領域は swap に割り当てられた領域として操作する

...

// 使用後、Void 型データ swap のメモリを解放する必要がある
MemoryFree(swap);

参照

SFXClusterHeap | ヒープクラス

メンバ

コンストラクタ/デストラクタ
SFXHeap( Void )
SFXHeap クラスのコンストラクタです。
パブリック関数
SFCError Attach( VoidPtr heap , UInt32 size )
指定された領域をこのヒープオブジェクトが管理するヒープ領域として結び付けます。
Bool Contains( VoidConstPtr heap , UInt32 size )
このヒープオブジェクトが管理するヒープ領域と指定された領域に共通部分があるか判定します。
VoidPtr Detach( UInt32Ptr size = null )
このヒープオブジェクトが管理しているヒープ領域を切り離します。
static
SFXHeap< T > const &
EmptyInstance( Void )
空のヒープオブジェクトを取得します。
Void Free( Void )
このヒープオブジェクトが管理するヒープ領域を解放します。
VoidPtr GetHeap( Void )
このヒープオブジェクトが管理しているヒープ領域のポインタを取得します。
VoidConstPtr GetHeap( Void )
このヒープオブジェクトが管理しているヒープ領域のポインタを取得します。
UInt32 GetSize( Void )
このヒープオブジェクトが管理するヒープ領域のサイズを取得します。
VoidConstPtr Protect( VoidConstPtr heap , UInt32 size )
指定された範囲の領域を保護します。
SFCError Resize( UInt32 size )
このヒープオブジェクトが管理するヒープ領域のサイズを指定されたサイズに変更します。[単位: バイト]
Void Unprotect( VoidConstPtr protect , VoidConstPtr heap )
保護した領域を解除します。
operator T *( Void )
このヒープを T * 型に変換してそのポインタを返します。
Bool operator==( SFXHeap< T > const & left , SFXHeap< M > const & right )
左側のヒープの先頭アドレスが右側のヒープのものと等しいか判定します。
Bool operator==( SFXHeap< T > const & left , VoidConstPtr right )
左側のヒープの先頭アドレスが右側のヒープのものと等しいか判定します。
Bool operator==( VoidConstPtr left , SFXHeap< T > const & right )
左側のヒープの先頭アドレスが右側のヒープのものと等しいか判定します。
Bool operator>=( SFXHeap< T > const & left , SFXHeap< M > const & right )
左側のヒープの先頭アドレスが右側のヒープのもの以上であるか判定します。
Bool operator>=( SFXHeap< T > const & left , VoidConstPtr right )
左側のヒープの先頭アドレスが右側のヒープのもの以上であるか判定します。
Bool operator>=( VoidConstPtr left , SFXHeap< T > const & right )
左側のヒープの先頭アドレスが右側のヒープのもの以上であるか判定します。
Bool operator>( SFXHeap< T > const & left , SFXHeap< M > const & right )
左側のヒープの先頭アドレスが右側のヒープのものよりも大きいか判定します。
Bool operator>( SFXHeap< T > const & left , VoidConstPtr right )
左側のヒープの先頭アドレスが右側のヒープのものよりも大きいか判定します。
Bool operator>( VoidConstPtr left , SFXHeap< T > const & right )
左側のヒープの先頭アドレスが右側のヒープのものよりも大きいか判定します。
Bool operator<=( SFXHeap< T > const & left , SFXHeap< M > const & right )
左側のヒープの先頭アドレスが右側のヒープのもの以下であるか判定します。
Bool operator<=( SFXHeap< T > const & left , VoidConstPtr right )
左側のヒープの先頭アドレスが右側のヒープのもの以下であるか判定します。
Bool operator<=( VoidConstPtr left , SFXHeap< T > const & right )
左側のヒープの先頭アドレスが右側のヒープのもの以下であるか判定します。
Bool operator<( SFXHeap< T > const & left , SFXHeap< M > const & right )
左側のヒープの先頭アドレスが右側のヒープのものよりも小さいか判定します。
Bool operator<( SFXHeap< T > const & left , VoidConstPtr right )
左側のヒープの先頭アドレスが右側のヒープのものよりも小さいか判定します。
Bool operator<( VoidConstPtr left , SFXHeap< T > const & right )
左側のヒープの先頭アドレスが右側のヒープのものよりも小さいか判定します。
Bool operator!=( SFXHeap< T > const & left , SFXHeap< M > const & right )
左側のヒープの先頭アドレスが右側のヒープのものと異なるか判定します。
Bool operator!=( SFXHeap< T > const & left , VoidConstPtr right )
左側のヒープの先頭アドレスが右側のヒープのものと異なるか判定します。
Bool operator!=( VoidConstPtr left , SFXHeap< T > const & right )
左側のヒープの先頭アドレスが右側のヒープのものと異なるか判定します。
グローバル関数
Bool operator==( SFXHeap< T > const & left , SFXHeap< M > const & right )
左側のヒープの先頭アドレスが右側のヒープのものと等しいか判定します。
Bool operator==( SFXHeap< T > const & left , VoidConstPtr right )
左側のヒープの先頭アドレスが右側のヒープのものと等しいか判定します。
Bool operator==( VoidConstPtr left , SFXHeap< T > const & right )
左側のヒープの先頭アドレスが右側のヒープのものと等しいか判定します。
Bool operator>=( SFXHeap< T > const & left , SFXHeap< M > const & right )
左側のヒープの先頭アドレスが右側のヒープのもの以上であるか判定します。
Bool operator>=( SFXHeap< T > const & left , VoidConstPtr right )
左側のヒープの先頭アドレスが右側のヒープのもの以上であるか判定します。
Bool operator>=( VoidConstPtr left , SFXHeap< T > const & right )
左側のヒープの先頭アドレスが右側のヒープのもの以上であるか判定します。
Bool operator>( SFXHeap< T > const & left , SFXHeap< M > const & right )
左側のヒープの先頭アドレスが右側のヒープのものよりも大きいか判定します。
Bool operator>( SFXHeap< T > const & left , VoidConstPtr right )
左側のヒープの先頭アドレスが右側のヒープのものよりも大きいか判定します。
Bool operator>( VoidConstPtr left , SFXHeap< T > const & right )
左側のヒープの先頭アドレスが右側のヒープのものよりも大きいか判定します。
Bool operator<=( SFXHeap< T > const & left , SFXHeap< M > const & right )
左側のヒープの先頭アドレスが右側のヒープのもの以下であるか判定します。
Bool operator<=( SFXHeap< T > const & left , VoidConstPtr right )
左側のヒープの先頭アドレスが右側のヒープのもの以下であるか判定します。
Bool operator<=( VoidConstPtr left , SFXHeap< T > const & right )
左側のヒープの先頭アドレスが右側のヒープのもの以下であるか判定します。
Bool operator<( SFXHeap< T > const & left , SFXHeap< M > const & right )
左側のヒープの先頭アドレスが右側のヒープのものよりも小さいか判定します。
Bool operator<( SFXHeap< T > const & left , VoidConstPtr right )
左側のヒープの先頭アドレスが右側のヒープのものよりも小さいか判定します。
Bool operator<( VoidConstPtr left , SFXHeap< T > const & right )
左側のヒープの先頭アドレスが右側のヒープのものよりも小さいか判定します。
Bool operator!=( SFXHeap< T > const & left , SFXHeap< M > const & right )
左側のヒープの先頭アドレスが右側のヒープのものと異なるか判定します。
Bool operator!=( SFXHeap< T > const & left , VoidConstPtr right )
左側のヒープの先頭アドレスが右側のヒープのものと異なるか判定します。
Bool operator!=( VoidConstPtr left , SFXHeap< T > const & right )
左側のヒープの先頭アドレスが右側のヒープのものと異なるか判定します。

SFXHeap::SFXHeap
SFXHeap クラスのコンストラクタです。
[ public, explicit ]
SFXHeap(Void);

SFXHeap::Attach
指定された領域をこのヒープオブジェクトが管理するヒープ領域として結び付けます。
[ public ]
SFCError Attach(
    VoidPtr heap   // 領域へのポインタ
    UInt32 size    // 領域のサイズ[単位: バイト]
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • このヒープオブジェクトの領域と指定された領域に共通部分があるとき、またはheap 引数が null であるとき: SFERR_INVALID_PARAM

解説

この関数は、指定された領域をこのヒープオブジェクトが管理するヒープ領域として結び付けます。 この関数を実行した後、指定された領域はこのヒープオブジェクトが管理するヒープ領域(SFXHeap オブジェクト)として操作できます。

[Note] 注意
引数に指定された領域に割り当てられていたメモリは、 このヒープオブジェクトが解放されるときに自動的に解放されます。

使用例

SFXHeap<Byte> heap;
VoidPtr swap;

// swap に 10240 バイトのメモリを割り当てる
swap = MemoryAllocate(10240); 

...

// swap に割り当てた領域を heap オブジェクトに結びつける
heap.Attach(swap, 10240);

// 以降、swap に割り当てた領域は heap オブジェクトとして操作できる

・・・

// 使用後、swap に割り当てた領域は自動的に解放される 

参照

SFXHeap::Detach | SFXHeap::Contains


SFXHeap::Contains
このヒープオブジェクトが管理するヒープ領域と指定された領域に共通部分があるか判定します。
[ public, const ]
Bool Contains(
    VoidConstPtr heap   // 比較する領域へのポインタ
    UInt32 size         // 比較する領域のサイズ[単位: バイト]
);

戻り値

  • あるとき: true
  • ないとき: false

解説

この関数は、このヒープオブジェクトが管理するヒープ領域と指定された領域に共通部分があるか判定します。

使用例

SFXHeap<Byte> heap(100, 10);

heap.Resize(100);  // heap オブジェクトのサイズを 100 バイトに設定する

// area1 は heap オブジェクトに含まれる
VoidConstPtr area1 = static_cast<BytePtr>(heap.GetHeap()) + 10;  

// area2 は heap オブジェクトに含まれない
VoidConstPtr area2 = static_cast<BytePtr>(heap.GetHeap()) + 100;  

if (heap.Contains(area1, 200)) {

    // heap オブジェクトは area1 以降の領域と共通部分があるので、ここが実行される
    TRACE("The heap object contains area1.");
}

if (!heap.Contains(area2, 200)) {

    // heap オブジェクトは area2 以降の領域と共通部分がないので、ここが実行される
    TRACE("The heap object does not contain area2.");
}

SFXHeap::Detach
このヒープオブジェクトが管理しているヒープ領域を切り離します。
[ public ]
VoidPtr Detach(
    UInt32Ptr size = null   // 切り離されるヒープ領域のサイズが格納される変数へのポインタ
);

戻り値

このヒープオブジェクトが管理していたヒープ領域へのポインタ。

解説

この関数は、 このヒープオブジェクトが管理しているヒープ領域を切り離し、その領域のポインタを返します。

size 引数には、ヒープ領域のサイズが返されます。

[Caution] 注意

このヒープオブジェクトが管理するヒープ領域はコピーされません。

使用例

SFXHeap<Byte> heap;
VoidPtr swap;
UInt32 length;

...

// heap オブジェクトが管理するヒープ領域を切り離し、その領域のポインタを swap に設定する
// 領域のサイズは length に格納される
swap = heap.Detach(&length);

// 以降、heap オブジェクトのヒープ領域は swap に割り当てられた領域として操作する

...

// 使用後、swap に割り当てられた領域は解放する必要がある
MemoryFree(swap);

参照

SFXHeap::Attach


SFXHeap::EmptyInstance
空のヒープオブジェクトを取得します。
[ public, static ]
SFXHeap< T > const & EmptyInstance(Void);

戻り値

空のヒープオブジェクト

解説

空のヒープオブジェクトを取得します。


SFXHeap::Free
このヒープオブジェクトが管理するヒープ領域を解放します。
[ public ]
Void Free(Void);

解説

この関数は、このヒープオブジェクトが管理するヒープ領域を解放します。

使用例

SFXHeap<Byte> heap;

...

heap.Free();   // heap オブジェクトが管理するヒープ領域を解放する

参照

SFXHeap::Resize


SFXHeap::GetHeap
このヒープオブジェクトが管理しているヒープ領域のポインタを取得します。
[ public ]
VoidPtr GetHeap(Void);
[ public, const ]
VoidConstPtr GetHeap(Void);

戻り値

このヒープオブジェクトが管理しているヒープ領域のポインタ

解説

この関数は、このヒープオブジェクトが管理しているヒープ領域のポインタを取得します。

使用例

SFXHeap<SInt16> heap;

// ヒープのサイズ設定する 
if (heap.Resize(sizeof(SInt16) * 128) == SFERR_NO_ERROR) {

    TRACE("addr = 0x%08X", heap.GetHeap());  // addr = 0x0686FF80
}

SFXHeap::GetSize
このヒープオブジェクトが管理するヒープ領域のサイズを取得します。
[ public, const ]
UInt32 GetSize(Void);

戻り値

このヒープオブジェクトが管理するヒープ領域のサイズ

解説

この関数は、このヒープオブジェクトが管理するヒープ領域のサイズを取得します。

使用例

SFXHeap<Byte> heap;

// ヒープのサイズを設定する
if (heap.Resize(0x200) == SFERR_NO_ERROR) {

    // ヒープのサイズを取得する
    TRACE("size = 0x%x", heap.GetSize());  // size = 0x200
}

参照

SFXHeap::Resize | SFXHeap::Attach


SFXHeap::Protect
指定された範囲の領域を保護します。
[ public, const ]
VoidConstPtr Protect(
    VoidConstPtr heap   // 保護する領域へのポインタ
    UInt32 size         // 保護する領域のサイズ
);

戻り値

保護された領域へのポインタ。

解説

この関数は、指定された範囲の領域を保護します。

このヒープオブジェクトが管理するヒープ領域と指定された範囲の領域との間に共通部分がある場合、 このヒープオブジェクトが管理するヒープ領域と共通部分を持たない別の領域を確保し、 指定された範囲の領域の内容をそこにコピーし、そのアドレスを返します。 共通部分がない場合は、引数に指定された領域のアドレスを返す処理だけを行います。

SFXHeap::Protect 関数で保護した領域についての処理を終えた後は、 SFXHeap::Unprotect 関数を呼び出す必要があります。

[Note] 注意
SFXHeap::Unprotect 関数は、 SFXHeap::Protect 関数が確保した別の領域を解放します。 SFXHeap::Protect 関数が別の領域を確保しなかった場合は何も行いません。

使用例

SFXHeap<Byte> heap;
VoidConstPtr protect;

heap.Resize(0x200);  // ヒープのサイズを 0x200 バイトに設定する

// _area1 = _heap + 0x100 
// _area2 = _heap + 0x200 
VoidConstPtr _heap(heap.GetHeap());
VoidConstPtr _area1(static_cast<BytePtr>(heap.GetHeap()) + 0x100);
VoidConstPtr _area2(static_cast<BytePtr>(heap.GetHeap()) + 0x200);

TRACE("addr of _heap  = 0x%08X", _heap);   // addr of _heap  = 0x0585BD50
TRACE("addr of _area1 = 0x%08X", _area1);  // addr of _area1 = 0x0585BE50
TRACE("addr of _area2 = 0x%08X", _area2);  // addr of _area2 = 0x0585BF50

// HEAP:   [ _heap, _heap + 0x200 )
// AREA_1: [ _area1, _area1 + 0x100 )
// AREA_2: [ _area2, _area2 + 0x100 )

// HEAP ∩ AREA_1 ≠ Φ
// AREA_1 を保護する
if ((protect = heap.Protect(_area1, 0x100)) != null) {
 
    // [ protect, protect + 0x100 ) の領域は HEAP 外に確保される
    TRACE("addr of protect = 0x%08X", protect); // addr of protect = 0x0585BF80
 
    // 保護を解除する: Protect() が確保した [ protect, protect + 0x100 ) の領域を解放する
    heap.Unprotect(protect, _area1);
}

// HEAP ∩ AREA_2 = Φ
// AREA_2 を保護する
if ((protect = heap.Protect(_area2, 0x100)) != null) {
 
    // AREA_2 は HEAP と共通部分を持たないので、protect と_area2 は等しい
    TRACE("addr of protect = 0x%08X", protect); // addr of protect = 0x0585BF50
 
    // 保護を解除する: Protect() は別の領域を確保しなかったので何も行わない
    heap.Unprotect(protect, _area2);
}

参照

SFXHeap::Unprotect | SFXHeap::Attach | SFXHeap::Contains


SFXHeap::Resize
このヒープオブジェクトが管理するヒープ領域のサイズを指定されたサイズに変更します。[単位: バイト]
[ public ]
SFCError Resize(
    UInt32 size   // 新しいヒープサイズ[単位: バイト]
);

戻り値

  • 成功したとき: SFERR_NO_ERROR
  • メモリ不足のとき: SFERR_NO_MEMORY

解説

この関数は、このヒープオブジェクトが管理するヒープ領域のサイズを指定されたサイズに変更します。

指定されたサイズのメモリがこのヒープに割り当てられます。

[Caution] 注意

サイズが変化する場合、 SFXHeap::GetHeap 関数の戻り値であるヒープへのポインタも変化します。

使用例

SFXHeap<Byte> heap;

heap.Resize(0x200);  // ヒープのサイズを 0x200 バイトに設定する

参照

SFXHeap::Attach | SFXHeap::GetHeap | SFXHeap::GetSize


SFXHeap::Unprotect
保護した領域を解除します。
[ public, const ]
Void Unprotect(
    VoidConstPtr protect   // SFXHeap::Protect() が返した保護された領域へのポインタ
    VoidConstPtr heap      // SFXHeap::Protect() の引数に指定された保護する領域へのポインタ
);

解説

SFXHeap::Protect 関数で保護した領域を解除します。

保護する領域がこのヒープオブジェクトが管理するヒープ領域と共通部分を持っていた場合は、 SFXHeap::Protect 関数が確保した別の領域を解放します。 共通部分を持たなかった場合、この関数は何も行いません。

[Note] 注意
保護する領域がこのヒープオブジェクトが管理するヒープ領域と共通部分を持っていた場合は、 protect 引数で指定する値と、heap 引数で指定する値は異なります。 逆に、共通部分を持たなかった場合、この 2 つの引数は同じ値になります。

参照

SFXHeap::Protect


SFXHeap::operator T *
このヒープを T * 型に変換してそのポインタを返します。
[ public, const ]
operator T *(Void);

戻り値

ヒープが割り当てられている場合はそのヒープへのポインタを、 割り当てられていない場合は空ポインタを返します。

解説

このオペレーターは、このヒープを T * 型に変換してそのポインタを返します。


operator==
左側のヒープの先頭アドレスが右側のヒープのものと等しいか判定します。
[ public, friend ]
Bool operator==(
    SFXHeap< T > const & left    // 左側のヒープ
    SFXHeap< M > const & right   // 右側のヒープ
);
[ public, friend ]
Bool operator==(
    SFXHeap< T > const & left   // 左側のヒープ
    VoidConstPtr right          // 右側のヒープ
);
[ public, friend ]
Bool operator==(
    VoidConstPtr left            // 左側のヒープ
    SFXHeap< T > const & right   // 右側のヒープ
);

戻り値

  • 等しいとき: true
  • そうでないとき: false

解説

このオペレーターは、左側のヒープの先頭アドレスが右側のヒープのものと等しいか判定します。

[Note] 注意

このオペレーターは、 左側のヒープと右側のヒープについて、その先頭アドレスを比較します。

参照

operator!=


operator>=
左側のヒープの先頭アドレスが右側のヒープのもの以上であるか判定します。
[ public, friend ]
Bool operator>=(
    SFXHeap< T > const & left    // 左側のヒープ
    SFXHeap< M > const & right   // 右側のヒープ
);
[ public, friend ]
Bool operator>=(
    SFXHeap< T > const & left   // 左側のヒープ
    VoidConstPtr right          // 右側のヒープ
);
[ public, friend ]
Bool operator>=(
    VoidConstPtr left            // 左側のヒープ
    SFXHeap< T > const & right   // 右側のヒープ
);

戻り値

  • 以上であるとき: true
  • そうでないとき: false

解説

このオペレーターは、左側のヒープの先頭アドレスが右側のヒープのもの以上であるか判定します。

[Note] 注意

このオペレーターは、 左側のヒープと右側のヒープについて、その先頭アドレスを比較します。

参照

operator> | operator< | operator<=


operator>
左側のヒープの先頭アドレスが右側のヒープのものよりも大きいか判定します。
[ public, friend ]
Bool operator>(
    SFXHeap< T > const & left    // 左側のヒープ
    SFXHeap< M > const & right   // 右側のヒープ
);
[ public, friend ]
Bool operator>(
    SFXHeap< T > const & left   // 左側のヒープ
    VoidConstPtr right          // 右側のヒープ
);
[ public, friend ]
Bool operator>(
    VoidConstPtr left            // 左側のヒープ
    SFXHeap< T > const & right   // 右側のヒープ
);

戻り値

  • 大きいとき: true
  • そうでないとき: false

解説

このオペレーターは、左側のヒープの先頭アドレスが右側のヒープのものよりも大きいか判定します。

[Note] 注意

このオペレーターは、 左側のヒープと右側のヒープについて、その先頭アドレスを比較します。

参照

operator>= | operator< | operator<=


operator<=
左側のヒープの先頭アドレスが右側のヒープのもの以下であるか判定します。
[ public, friend ]
Bool operator<=(
    SFXHeap< T > const & left    // 左側のヒープ
    SFXHeap< M > const & right   // 右側のヒープ
);
[ public, friend ]
Bool operator<=(
    SFXHeap< T > const & left   // 左側のヒープ
    VoidConstPtr right          // 右側のヒープ
);
[ public, friend ]
Bool operator<=(
    VoidConstPtr left            // 左側のヒープ
    SFXHeap< T > const & right   // 右側のヒープ
);

戻り値

  • 以下であるとき: true
  • そうでないとき: false

解説

このオペレーターは、左側のヒープの先頭アドレスが右側のヒープのもの以下であるか判定します。

[Note] 注意

このオペレーターは、 左側のヒープと右側のヒープについて、その先頭アドレスを比較します。

参照

operator<= | operator> | operator>=


operator<
左側のヒープの先頭アドレスが右側のヒープのものよりも小さいか判定します。
[ public, friend ]
Bool operator<(
    SFXHeap< T > const & left    // 左側のヒープ
    SFXHeap< M > const & right   // 右側のヒープ
);
[ public, friend ]
Bool operator<(
    SFXHeap< T > const & left   // 左側のヒープ
    VoidConstPtr right          // 右側のヒープ
);
[ public, friend ]
Bool operator<(
    VoidConstPtr left            // 左側のヒープ
    SFXHeap< T > const & right   // 右側のヒープ
);

戻り値

  • 小さいとき: true
  • そうでないとき: false

解説

このオペレーターは、左側のヒープの先頭アドレスが右側のヒープのものよりも小さいか判定します。

[Note] 注意

このオペレーターは、 左側のヒープと右側のヒープについて、その先頭アドレスを比較します。

参照

operator<= | operator> | operator>=


operator!=
左側のヒープの先頭アドレスが右側のヒープのものと異なるか判定します。
[ public, friend ]
Bool operator!=(
    SFXHeap< T > const & left    // 左側のヒープ
    SFXHeap< M > const & right   // 右側のヒープ
);
[ public, friend ]
Bool operator!=(
    SFXHeap< T > const & left   // 左側のヒープ
    VoidConstPtr right          // 右側のヒープ
);
[ public, friend ]
Bool operator!=(
    VoidConstPtr left            // 左側のヒープ
    SFXHeap< T > const & right   // 右側のヒープ
);

戻り値

  • 異なるとき: true
  • そうでないとき: false

解説

このオペレーターは、左側のヒープの先頭アドレスが右側のヒープのものと異なるか判定します。

[Note] 注意

このオペレーターは、 左側のヒープと右側のヒープについて、その先頭アドレスを比較します。

参照

operator==