STLエイリアス#

STLのうちメモリのアロケーションを伴うクラスについては、MGL側で管理しているアロケータを使用するよう指定したエイリアスが用意されています。これらは名前空間MGL::STL以下で宣言されており、標準的な名前空間であるstdの部分を変更するだけで利用可能です。

MGLのアロケータについてはMGLのデフォルトアロケータを参照してください。

本項では、MGL::STL以下で宣言されているテンプレートクラスの情報について説明します。

注釈

具体的な利用方法については標準的なSTLのリファレンスを参照してください。

コンテナ#

メモリアロケータを使用するコンテナクラスです。これらのクラスはテンプレート引数にMGLのアロケータを指定したエイリアスとなっており、実装そのものはSDK標準のSTLをそのまま引き継ぎます。

名前

内容

バージョン

deque

二重終端キュー

1.0.0+

stack

スタック

1.0.0+

queue

キュー

1.0.0+

forward_list

単方向リンクリスト

1.0.0+

list

双方向リンクリスト

1.0.0+

vector

可変長配列

1.0.0+

map

連想配列

1.0.0+

multimap

連想配列(キー重複あり)

1.0.0+

set

要素自身がキーとなる連想配列

1.0.0+

multiset

要素自身がキーとなる連想配列(キー重複あり)

1.0.0+

unordered_map

順序保証のないmap

1.0.0+

unordered_multimap

順序保証のないmultimap

1.0.0+

unordered_set

順序保証のないset

1.0.0+

unordered_multiset

順序保証のないmultiset

1.0.0+

文字列#

各種文字列クラスです。これらのクラスはテンプレート引数にMGLのアロケータを指定したエイリアスとなっており、実装そのものはSDK標準のSTLをそのまま引き継ぎます。

名前

内容

バージョン

basic_string

基本的な文字列クラス

1.0.0+

string

char型の文字列クラス

1.0.0+

u16string

char16_t型の文字列クラス

1.0.0+

u32string

char32_t型の文字列クラス

1.0.0+

wstring

wchar_t型の文字列クラス

1.0.0+

スマートポインタ#

スマートポインタ関連のクラスです。

名前

内容

バージョン

unique_ptr

ユニークポインタ

1.0.0+

make_unique

ユニークポインタの生成

1.0.0+

make_shared

共有ポインタの生成

1.0.0+

MGL::STL::unique_ptrは解放の際にMGLのデリータを使用するユニークポインタであり、MGL::STL::make_uniqueで生成したポインタを格納できます。

MGL::STL::make_uniqueはエイリアスではなく、MGL側での実装になります。SDK標準のstd::make_uniqueとは動作が異なる場合があることにご注意ください。

警告

MGL::STL::unique_ptrにはMGL::STL::make_unique以外の方法で生成したポインタを設定しないでください。確保時とは異なるアロケータで解放することになり、不正な動作となります。

MGL::STL::make_sharedはMGLのアロケータを利用して確保・解放を行う共有ポインタを生成します。共有ポインタは使用するアロケータの情報を内部の管理領域に保持するため、この関数の戻り値はstd::shared_ptrにそのまま格納できます。