STLエイリアス
Contents
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
にそのまま格納できます。