nlib
|
アラインされたメモリを得るためのクラスです。 [詳解]
#include "nn/nlib/DynamicAlignedStorage.h"
公開メンバ関数 | |
errno_t | Init (size_t size, size_t align) noexcept |
メモリの割り当てを行います。 [詳解] | |
void * | Get () noexcept |
割り当てられた領域へのポインタを返します。 [詳解] | |
基本的なメンバ関数 | |
constexpr | DynamicAlignedStorage () noexcept |
デフォルトコンストラクタです。 | |
DynamicAlignedStorage (DynamicAlignedStorage &&rhs) noexcept | |
ムーブコンストラクタです。C++11の利用時に有効です。 | |
DynamicAlignedStorage & | operator= (DynamicAlignedStorage &&rhs) noexcept |
ムーブ代入演算子です。C++11の利用時に有効です。 | |
DynamicAlignedStorage (DynamicAlignedStorage &rhs, move_tag) noexcept | |
ムーブコンストラクタに相当します。 | |
DynamicAlignedStorage & | assign (DynamicAlignedStorage &rhs, move_tag) noexcept |
ムーブ代入演算子に相当します。 | |
void | swap (DynamicAlignedStorage &rhs) noexcept |
オブジェクトをスワップします。 [詳解] | |
~DynamicAlignedStorage () noexcept | |
デストラクタです。 | |
アラインされたメモリを得るためのクラスです。
std::aligned_storage
やalignas
を使えばアライメントを指定できますが、大きなアライメントに対応しているかどうかは環境に依存しています。 大きなアライメントのメモリを利用したい場合は動的にメモリを確保するようにする必要があります。 Windows以外ではnlib_memalign()
をラップし、Windowsでは_aligned_malloc()
をラップして実装されています。 DynamicAlignedStorage.h の 24 行目に定義があります。
|
inlinenoexcept |
|
inlinenoexcept |
メモリの割り当てを行います。
[in] | size | 割り当てる領域のサイズ |
[in] | align | 割り当てる領域のアライメント |
0 | 成功した場合 |
EINVAL | アライメントが2のべき乗ではなかった場合 |
ENOMEM | メモリの確保に失敗した場合 |
DynamicAlignedStorage.h の 60 行目に定義があります。
|
inlinenoexcept |
© 2012-2017 Nintendo Co., Ltd. All rights reserved.