16 #ifndef INCLUDE_NN_NLIB_THREADING_TLS_H_ 17 #define INCLUDE_NN_NLIB_THREADING_TLS_H_ 20 #include "nn/nlib/Swap.h" 37 #ifdef __cpp_rvalue_references 60 if (e != 0)
return nullptr;
61 return reinterpret_cast<T*
>(p);
80 delete reinterpret_cast<T*
>(p);
89 NLIB_DEFINE_STD_SWAP_T_BEGIN3(
nn, nlib, threading)
90 NLIB_DEFINE_STD_SWAP_T1(T, NLIB_NS::threading::Tls)
91 NLIB_DEFINE_STD_SWAP_T_END3(
nn, nlib, threading)
93 #endif // INCLUDE_NN_NLIB_THREADING_TLS_H_ #define NLIB_DISALLOW_COPY_AND_ASSIGN(TypeName)
TypeName で指定されたクラスのコピーコンストラクタと代入演算子を禁止します。
errno_t Reset(T *p=0) noexcept
設定したスレッド固有のポインタを置き換えます。
T & operator*() const noexcept
ポインタの参照外しを行います。
T * Release() noexcept
設定したスレッド固有のポインタを解放します。
T * operator->() const noexcept
ポインタを返します。
T * Get() const noexcept
設定したスレッド固有のポインタを取得します。
errno_t Init() noexcept
スレッドローカルストレージを初期化します。
空の構造体で、関数の引数をムーブすべきことを示すために利用されます。
スレッドローカルストレージを扱うためのクラスです。
constexpr Tls() noexcept
デフォルトコンストラクタです。
#define NLIB_NOEXCEPT
環境に合わせてnoexcept 又は同等の定義がされます。
#define NLIB_CEXPR
利用可能であればconstexprが定義されます。そうでない場合は空文字列です。
~Tls() noexcept
デストラクタです。ポインタはdeleteされます。
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。