nlib
|
共通して使われることの多いストリーム関連のクラス群や各種コンテナ、及びガシェットクラスが実装されています。nlib_ns
はエイリアスです。
[詳解]
名前空間 | |
binary_reader | |
BinaryReader クラスでユーザー定義クラスに読み込むために利用する関数が定義されています。 | |
binary_writer | |
BinaryWriter クラスでユーザー定義クラスを書きこむために利用する関数が定義されています。 | |
exi | |
バイナリXMLパーサー(とXMLパーサー)が実装されています。 | |
handle_maker | |
HandleMaker クラスをカスタマイズするための関数テンプレートが定義されている名前空間です。 | |
heap | |
heap ライブラリの名前空間です。nmalloc() , nfree() 等はグローバル名前空間に定義されています。 | |
msgpack | |
MessagePackのシリアライザ及びJSONパーサー/ライター, CSVパーサーが実装されています。 | |
oss | |
オープンソース・ソフトウェア(OSS), OSS派生コード, 及びOSSにアクセスするためのライブラリが実装されています。 | |
simd | |
整数、単精度浮動小数点数のSIMD演算を行うためのクラスや関数が実装されています。 | |
succinct | |
ビットベクトルに関する簡潔データ構造クラスのライブラリが実装されています。 | |
testing | |
C++のコードをテストするためのフレームワークです。testingライブラリの機能一覧 の説明も御覧ください。 | |
threading | |
スレッド関連のクラスや関数が実装されています。 | |
unicode | |
ユニコード関連の機能が実装されています。 | |
クラス | |
class | Base64Decoder |
Base64のデコードを行います。Base64の各種変形版をサポートします。 [詳解] | |
class | Base64Encoder |
Base64のエンコードを行います。Base64の各種変形版をサポートします。 [詳解] | |
class | Base64InputStream |
Base64でエンコードされたデータを読み込むためのクラスです。 [詳解] | |
class | Base64OutputStream |
データをBase64でエンコードして書きこむためのクラスです。 [詳解] | |
class | BinaryReader |
ストリーム(InputStream )からバイナリを読み込むクラスです。 [詳解] | |
class | BinaryWriter |
ストリーム(OutputStream )にバイナリを書き込むクラスです。 [詳解] | |
class | ConsoleOutputStream |
nlib_printfを利用して文字列としてコンソールに出力するストリームを作成します。 [詳解] | |
class | ConstructorForLockFree |
オブジェクトを初期化するためのクラステンプレートです。特殊化して利用します。 [詳解] | |
class | CurlInputStream |
libcurl を用いてダウンロードを行うためのストリームクラスです。 [詳解] | |
class | DateTime |
日時を表すクラスです。 [詳解] | |
struct | DateTimeParams |
日時情報をDateTime に設定したりDateTime から取得するための構造体です。 [詳解] | |
class | DestructorForLockFree |
オブジェクトをデストラクトするためのクラステンプレートです。特殊化して利用します。 [詳解] | |
class | DynamicAlignedStorage |
アラインされたメモリを得るためのクラスです。 [詳解] | |
class | ErrnoT |
errno_t をラップするクラスです。Visual Studioのデバッガ上での表示を改善します。 [詳解] | |
class | FileInputStream |
ファイルの入力ストリームです。 [詳解] | |
struct | FileInputStreamSettings |
ファイルストリームの設定情報を格納する構造体です。 [詳解] | |
class | FileOutputStream |
ファイルの出力ストリームです。 [詳解] | |
struct | FileOutputStreamSettings |
ファイルストリームの設定情報を格納する構造体です。 [詳解] | |
class | FileStyleUri |
fileスキームを用いたURIをパースしたりURI文字列を構築したりするためのクラスです。 [詳解] | |
class | GroupVarInt32 |
32bit整数値を4個単位でエンコード及びデコードするためのクラスです。 [詳解] | |
class | HandleAccess |
ハンドル実体に対してポインタのようにアクセスできるアクセサクラスです。HandlerMaker クラスにより設定されて利用可能になります。 [詳解] | |
class | HandleMaker |
32bit整数値を持つハンドルの実装を支援するクラスです。 [詳解] | |
struct | HandleTable |
HandlerMaker クラスが利用するハンドルの実体への参照テーブルです。 [詳解] | |
class | HttpStyleUri |
http/httpsスキームを用いたURIをパースしたりURI文字列を構築したりするためのクラスです。 [詳解] | |
class | InputConverterStream |
内部でデータ変換を行う InputStream のように振る舞うクラスの基底です。 [詳解] | |
class | InputConverterStreamTempl |
InputTransform の派生クラスを保持するためのクラスです。 [詳解] | |
class | InputStream |
入力ストリームの基底クラスです。このクラスを実体化することはできません。 [詳解] | |
class | LockFreeBroadcastQueue |
指定された数のリスナーがキューから要素を取得できます。全てのリスナーが取得後、要素はキューから削除されます。 [詳解] | |
class | LockFreePipe |
データの送り手側のスレッドと受け手側のスレッドがそれぞれ1つずつの場合、このクラスを用いてロックフリーにデータの受け渡しを行うことができます。 [詳解] | |
class | LockFreePriorityQueue |
ロックフリーな優先度つきキューを実装したクラスで、nlib_mq をラップしています。 [詳解] | |
class | LockFreeQueue |
ロックフリーなキューを実装しているクラスです。 [詳解] | |
class | LockFreeStack |
ロックフリーなスタックを実装しているクラスです。 [詳解] | |
class | LockFreeUnitHeap |
固定メモリサイズの領域を確保・解放をロックフリーで行うことのできるプールアロケータです。 [詳解] | |
class | MemoryInputStream |
メモリを使用する入力ストリームを作成します。 [詳解] | |
class | MemoryOutputStream |
メモリを使用する出力ストリームを作成します。 [詳解] | |
struct | move_tag |
空の構造体で、関数の引数をムーブすべきことを示すために利用されます。 [詳解] | |
class | NativePathMapper |
機種依存しないURIによるパス記述からネイティブのパス文字列を得るためのクラスです。 [詳解] | |
class | Nflags |
コマンドラインフラグをパースするためのクラスです。 [詳解] | |
class | Nlist |
std::vector に似た、コピーコンストラクタを持たないオブジェクトを格納可能なコンテナ類似クラスです。 [詳解] | |
class | Nqueue |
std::queue に似た、コピーコンストラクタを持たないオブジェクトを格納可能なコンテナ類似クラスです。 [詳解] | |
class | NullInputStream |
常に0を読み込むストリームです。 [詳解] | |
class | NullOutputStream |
実際の書き込み動作を行わないOutputStream です。 [詳解] | |
class | OutputConverterStream |
内部でデータ変換を行うOutputStream のように振る舞うクラスの基底です。 [詳解] | |
class | OutputConverterStreamTempl |
OutputTransform の派生クラスを保持するためのクラスです。 [詳解] | |
class | OutputStream |
出力ストリームの基底クラスです。このクラスを実体化することはできません。 [詳解] | |
class | ReallocCstringVec |
C文字列のベクタをreallocベースで実装しています。 [詳解] | |
class | ReallocOutputStream |
nlib_realloc()等のrealloc関数を利用して拡張するメモリ領域に書きこむ出力ストリームです。 [詳解] | |
class | ReallocQueue |
PODを要素に持つキューをreallocベースで実装しています。 [詳解] | |
class | ReallocVec |
PODを要素に持つベクタをreallocベースで実装しています。 [詳解] | |
class | SimpleSingleton |
main関数の実行前にstatic変数により暗黙的にインスタンスを構築するタイプのシングルトンです。 [詳解] | |
class | Singleton |
最初に利用されるときにオブジェクトが初期化されるシングルトンです。 [詳解] | |
class | SmartBitmap |
Rank/Select操作つきのビットデータを保持するデータ構造です。 [詳解] | |
class | SmartBitmapCrtp |
Rank/Select操作つきのビットデータを保持するデータ構造です。 [詳解] | |
class | SmartBitmapPtr |
Rank/Select操作つきのビットデータを保持するデータ構造です。 [詳解] | |
class | StringView |
std::string が持つメソッドをstd::string を構築せずに利用するためのクラスです。 [詳解] | |
class | TaggedTextParser |
XML風タグ付きテキストをパースする簡単なパーサーです。 [詳解] | |
class | TextReader |
ストリームからテキストを読み込むクラスです。 [詳解] | |
class | TextWriter |
ストリームにテキストを書き込むクラスです。 [詳解] | |
class | TimeSpan |
時間を表すクラスです。 [詳解] | |
class | TimeValue |
64bitの符号付き整数をラップするクラスです。 [詳解] | |
class | UniquePtr |
UniquePtr はポインタの所有権を保持し、UniquePtr がスコープから出るときにデストラクタでポインタをDELで指定した方法により解放します。 [詳解] | |
class | Uri |
一般的なURIをパースしたり構築したりするためのクラスです。 [詳解] | |
class | UriTemplate |
URI Template(RFC 6570, Level3)をサポートします。 [詳解] | |
class | Utf16InputStream |
UTF-16の文字列ストリームをUTF-8にして読み込むためのクラスです。 [詳解] | |
class | Utf32InputStream |
UTF-32の文字列ストリームをUTF-8にして読み込むためのクラスです。 [詳解] | |
class | Utf8Array |
UTF-8を格納するchar の配列をラップするクラスです。Visual Studioのデバッガ上でのUTF-8の表示を改善します。 [詳解] | |
class | Utf8Ptr |
UTF-8を格納するconst char* をラップするクラスです。Visual Studioのデバッガ上でのUTF-8の表示を改善します。 [詳解] | |
class | WcharInputStream |
ワイド文字(wchar_t, UTF-16/UTF-32)の文字列ストリームをUTF-8にして読み込むためのクラスです。 [詳解] | |
class | ZlibInputStream |
zlib を用いて圧縮したデータを読み込むためのストリームクラスです。 [詳解] | |
struct | ZlibInputStreamSettings |
ZlibInputStream の各種設定が格納されている構造体です。 コンストラクト時にはデフォルトの設定が格納されています。 [詳解] | |
class | ZlibOutputStream |
zlib を用いてデータを圧縮してストリームに書き込みます。 [詳解] | |
struct | ZlibOutputStreamSettings |
ZlibOutputStream の各種設定が格納されている構造体です。コンストラクト時にはデフォルトの設定が格納されています。 [詳解] | |
型定義 | |
typedef nlib_utf16_t | utf16_t |
UTF16の文字に対する型です。 nlib_utf16_t にtypedef されています。 | |
typedef nlib_utf32_t | utf32_t |
UTF32の文字に対する型です。 nlib_utf32_t にtypedef されています。 | |
関数 | |
size_t | StrLen (const char *str) noexcept |
nlib_strlen()をラップします。 | |
size_t | StrLen (const nlib_utf16_t *str) noexcept |
nlib_utf16len()をラップします。 | |
size_t | StrLen (const nlib_utf32_t *str) noexcept |
nlib_utf32len()をラップします。 | |
size_t | StrLen (const wchar_t *str) noexcept |
nlib_wcslen()をラップします。 | |
errno_t | CodePointCount (const char *str, size_t *count) noexcept |
nlib_strcplen()をラップします。 | |
errno_t | CodePointCount (const nlib_utf16_t *str, size_t *count) noexcept |
nlib_utf16cplen()をラップします。 | |
errno_t | CodePointCount (const nlib_utf32_t *str, size_t *count) noexcept |
nlib_utf32cplen()をラップします。 | |
errno_t | CodePointCount (const wchar_t *str, size_t *count) noexcept |
nlib_wcscplen()をラップします。 | |
int | StrCmp (const char *s1, const char *s2) noexcept |
strcmp() をラップします。 | |
int | StrCmp (const wchar_t *s1, const wchar_t *s2) noexcept |
wcscmp() をラップします。 | |
int | StrCmp (const nlib_utf16_t *s1, const nlib_utf16_t *s2) noexcept |
UTF-16文字列をstrcmp() と同様に比較します。 | |
int | StrCmp (const nlib_utf32_t *s1, const nlib_utf32_t *s2) noexcept |
UTF-32文字列をstrcmp() と同様に比較します。 | |
int | StrNcmp (const char *s1, const char *s2, size_t n) noexcept |
strncmp() をラップします。 | |
int | StrNcmp (const wchar_t *s1, const wchar_t *s2, size_t n) noexcept |
wcsncmp() をラップします。 | |
int | StrNcmp (const nlib_utf16_t *s1, const nlib_utf16_t *s2, size_t n) noexcept |
UTF-16文字列をstrncmp() と同様に比較します。 | |
int | StrNcmp (const nlib_utf32_t *s1, const nlib_utf32_t *s2, size_t n) noexcept |
UTF-32文字列をstrncmp() と同様に比較します。 | |
errno_t | StrCpy (char *dest, size_t dest_size, const char *src) noexcept |
nlib_strcpy() をラップします。 | |
errno_t | StrCpy (nlib_utf16_t *dest, size_t dest_size, const nlib_utf16_t *src) noexcept |
nlib_utf16cpy() をラップします。 | |
errno_t | StrCpy (nlib_utf32_t *dest, size_t dest_size, const nlib_utf32_t *src) noexcept |
nlib_utf32cpy() をラップします。 | |
errno_t | StrCpy (wchar_t *dest, size_t dest_size, const wchar_t *src) noexcept |
nlib_wcscpy() をラップします。 | |
template<class T , size_t N> | |
errno_t | StrCpy (T(&dest)[N], const T *src) noexcept |
内部でStrCpy(&dest[0], N, src)を呼び出します。 [詳解] | |
errno_t | StrNcpy (char *dest, size_t dest_size, const char *src, size_t n) noexcept |
nlib_strncpy() をラップします。 | |
errno_t | StrNcpy (nlib_utf16_t *dest, size_t dest_size, const nlib_utf16_t *src, size_t n) noexcept |
nlib_utf16ncpy() をラップします。 | |
errno_t | StrNcpy (nlib_utf32_t *dest, size_t dest_size, const nlib_utf32_t *src, size_t n) noexcept |
nlib_utf32ncpy() をラップします。 | |
errno_t | StrNcpy (wchar_t *dest, size_t dest_size, const wchar_t *src, size_t n) noexcept |
nlib_wcsncpy() をラップします。 | |
template<class T , size_t N> | |
errno_t | StrNcpy (T(&dest)[N], const T *src, size_t n) noexcept |
内部でStrNcpy(&dest[0], N, src, n)を呼び出します。 [詳解] | |
template<class T , size_t N> | |
errno_t | StrCat (T(&dest)[N], const T *src) noexcept |
内部でStrCat(&dest[0], N, src)を呼び出します。 [詳解] | |
template<class T , size_t N> | |
errno_t | StrNcat (T(&dest)[N], const T *src, size_t n) noexcept |
内部でStrNcat(&dest[0], N, src, n)を呼び出します。 [詳解] | |
int | VsnPrintfFallback (char *buf, size_t size, const char *fmt, va_list args) noexcept |
VsnPrintf のフォールバックです。ワイド文字版も実装されています。 [詳解] | |
int | VsnPrintf (char *buf, size_t size, const char *fmt, va_list args) noexcept |
vsnprintf() を実行します。 [詳解] | |
template<size_t N> | |
int | VsnPrintf (char(&buf)[N], const char *fmt, va_list args) noexcept |
内部でVsnPrintf(buf, N, fmt, args)を実行します。 [詳解] | |
int | SnPrintf (char *buf, size_t size, const char *fmt,...) noexcept |
内部でVsnPrintf() を呼び出す以外はsnprintf 相当の動作をします。 [詳解] | |
template<size_t N> | |
int | SnPrintf (char(&buf)[N], const char *fmt,...) noexcept |
内部でVsnPrintf() を実行します。 [詳解] | |
int | VsnPrintf (wchar_t *buf, size_t size, const wchar_t *fmt, va_list args) noexcept |
vsnprintf を実行します。 [詳解] | |
template<size_t N> | |
int | VsnPrintf (wchar_t(&buf)[N], const wchar_t *fmt, va_list args) noexcept |
内部でVsnPrintf(buf, N, fmt, args)を実行します。 [詳解] | |
int | SnPrintf (wchar_t *buf, size_t size, const wchar_t *fmt,...) noexcept |
内部でVsnPrintf() を呼び出す以外はsnwprintf 相当の動作をします。 [詳解] | |
template<size_t N> | |
int | SnPrintf (wchar_t(&buf)[N], const wchar_t *fmt,...) noexcept |
内部でVsnPrintf() を実行します。 [詳解] | |
errno_t | GetNintendoTime (int64_t *t) noexcept |
2000/01/01を起点とした経過時間をミリ秒単位で返します。 [詳解] | |
uint64_t | GetTickTime () noexcept |
システムを起動した後の経過時間をミリ秒単位で返します。 [詳解] | |
bool | operator== (const TimeValue &lhs, const TimeValue &rhs) noexcept |
比較演算子です。 | |
bool | operator< (const TimeValue &lhs, const TimeValue &rhs) noexcept |
比較演算子です。 | |
bool | operator!= (const TimeValue &lhs, const TimeValue &rhs) noexcept |
比較演算子です。 | |
bool | operator> (const TimeValue &lhs, const TimeValue &rhs) noexcept |
比較演算子です。 | |
bool | operator<= (const TimeValue &lhs, const TimeValue &rhs) noexcept |
比較演算子です。 | |
bool | operator>= (const TimeValue &lhs, const TimeValue &rhs) noexcept |
比較演算子です。 | |
TimeValue | operator+ (const TimeValue &lhs, const TimeValue &rhs) noexcept |
加算します。 | |
TimeValue | operator- (const TimeValue &lhs, const TimeValue &rhs) noexcept |
減算します。 | |
TimeSpan | operator+ (const TimeSpan &lhs, const TimeSpan &rhs) noexcept |
加算します。 | |
TimeSpan | operator- (const TimeSpan &lhs, const TimeSpan &rhs) noexcept |
減算します。 | |
TimeSpan | operator* (int i, const TimeSpan &rhs) noexcept |
rhs を i 倍します。 | |
TimeSpan | operator* (double d, const TimeSpan &rhs) noexcept |
rhs を d 倍します。 | |
TimeSpan | operator* (const TimeSpan &lhs, int i) noexcept |
rhs を i 倍します。 | |
TimeSpan | operator* (const TimeSpan &lhs, double d) noexcept |
rhs を d 倍します。 | |
DateTime | operator+ (const DateTime &lhs, const TimeSpan &rhs) noexcept |
lhs から rhs だけ未来の時刻を返します。 | |
DateTime | operator- (const DateTime &lhs, const TimeSpan &rhs) noexcept |
lhs から rhs だけ過去の時刻を返します。 | |
TimeSpan | operator- (const DateTime &lhs, const DateTime &rhs) noexcept |
時刻rhs から時刻lhs までの時間を返します。 | |
template<class T > | |
errno_t | LockFreeInit (T **ptr) noexcept |
スレッドセーフにオブジェクトの構築を行います。 [詳解] | |
template<class T , class AL1 , class AL2 > | |
bool | operator== (const Nlist< T, AL1 > &lhs, const Nlist< T, AL2 > &rhs) noexcept |
2つのリストが等価かどうか調べます。 | |
template<class T , class AL1 , class AL2 > | |
bool | operator!= (const Nlist< T, AL1 > &lhs, const Nlist< T, AL2 > &rhs) noexcept |
2つのリストが等価かどうか調べます。 | |
template<class T , class AL1 , class AL2 > | |
bool | operator< (const Nlist< T, AL1 > &lhs, const Nlist< T, AL2 > &rhs) noexcept |
2つのリストを辞書順で比較します。 | |
template<class T , class AL1 , class AL2 > | |
bool | operator> (const Nlist< T, AL1 > &lhs, const Nlist< T, AL2 > &rhs) noexcept |
2つのリストを辞書順で比較します。 | |
template<class T , class AL1 , class AL2 > | |
bool | operator<= (const Nlist< T, AL1 > &lhs, const Nlist< T, AL2 > &rhs) noexcept |
2つのリストを辞書順で比較します。 | |
template<class T , class AL1 , class AL2 > | |
bool | operator>= (const Nlist< T, AL1 > &lhs, const Nlist< T, AL2 > &rhs) noexcept |
2つのリストを辞書順で比較します。 | |
bool | operator== (const StringView &lhs, const StringView &rhs) noexcept |
文字列が一致するかどうか比較します。 | |
bool | operator!= (const StringView &lhs, const StringView &rhs) noexcept |
文字列が一致するかどうか比較します。 | |
bool | operator< (const StringView &lhs, const StringView &rhs) noexcept |
文字列を辞書順で比較します。 | |
bool | operator> (const StringView &lhs, const StringView &rhs) noexcept |
文字列を辞書順で比較します。 | |
bool | operator<= (const StringView &lhs, const StringView &rhs) noexcept |
文字列を辞書順で比較します。 | |
bool | operator>= (const StringView &lhs, const StringView &rhs) noexcept |
文字列を辞書順で比較します。 | |
template<class T1 , class D1 , class T2 , class D2 > | |
bool | operator== (const UniquePtr< T1, D1 > &rhs, const UniquePtr< T2, D2 > &lhs) noexcept |
同じポインタを保持していていればtrue を返します。 | |
template<class T1 , class D1 > | |
bool | operator== (const UniquePtr< T1, D1 > &lhs, nullptr_t) noexcept |
lhs がNULL であればtrue を返します。 | |
template<class T1 , class D1 > | |
bool | operator== (nullptr_t, const UniquePtr< T1, D1 > &rhs) noexcept |
rhs がNULL であればtrue を返します。 | |
template<class T1 , class D1 , class T2 , class D2 > | |
bool | operator!= (const UniquePtr< T1, D1 > &rhs, const UniquePtr< T2, D2 > &lhs) noexcept |
同じポインタを保持していなければtrue を返します。 | |
template<class T1 , class D1 > | |
bool | operator!= (const UniquePtr< T1, D1 > &lhs, nullptr_t) noexcept |
lhs がNULL でなければtrue を返します。 | |
template<class T1 , class D1 > | |
bool | operator!= (nullptr_t, const UniquePtr< T1, D1 > &rhs) noexcept |
rhs がNULL でなければtrue を返します。 | |
共通して使われることの多いストリーム関連のクラス群や各種コンテナ、及びガシェットクラスが実装されています。nlib_ns
はエイリアスです。
nn::nlib
名前空間には以下のようなクラスや関数が実装されています。 InputStream
, OutputStream
を基底クラスとする、各種ストリームクラス FileInputStream
, FileOutputStream
によるファイル入出力 MemoryInputStream
, MemoryOutputStream
によるメモリの読み書き ZlibInputStream
, ZlibOutputStream
によるzlibの圧縮データへの読み書き Base64InputStream
, Base64OutputStream
によるbase64でエンコードされたデータへの読み書き Utf16InputStream
, Utf32InputStream
, WcharInputStream
によるワイド文字列の読み込み ConsoleOutputStream
によるコンソールへの出力 TextReader
, TextWriter
によるUTF-8文字列のストリームへの文字コードの検証を伴う読み書き Nflags
によるコマンドライン文字列の解析 StringView
による、C文字列をstd::string
のように扱うためのインターフェイスの提供 StrTo()
関数による、std::strtol
系関数の安全なラップ NativePathMapper
による、機種依存しないURIベースのファイルパス表現文字列のサポート TaggedTextParser
によるXML風タグ付きテキストの簡易パーサー BinaryReader
, BinaryWriter
によるバイナリのストリームへのエンディアンを考慮した読み書き GroupVarInt32
によるGroup Varintでエンコードされたデータの読み書き Uri
, HttpStyleUri
, FileStyleUri
による各種URIの読み書き UriTemplate
によるテンプレートからのURI文字列生成のサポート Nlist
。要素数が増大した場合においても要素の格納場所が変更されないstd::vector
類似のコンテナ LockFreePipe
によるロックフリーな1:1のスレッド間通信のサポート LockFreeStack
によるロックフリーなスタックのサポート LockFreeQueue
によるロックフリーなキューのサポート LockFreeInit()
によるロックフリーなオブジェクトの構築と初期化のサポート LockFreePriorityQueue
によるロックフリーな優先度つきキューのサポート LockFreeBroadcastQueue
によるロックフリーなブロードキャスト可能なキューのサポート HandleMaker
による32bit整数ハンドルの作成支援 UniquePtr
によるC++03環境におけるstd::unique_ptr
の機能のサポート
|
inlinenoexcept |
2000/01/01を起点とした経過時間をミリ秒単位で返します。
[out] | t | 経過時間が格納されるポインタ |
EINVAL
を返します。 DateTime.h の 17 行目に定義があります。
|
inlinenoexcept |
システムを起動した後の経過時間をミリ秒単位で返します。
DateTime.h の 28 行目に定義があります。
|
inlinenoexcept |
スレッドセーフにオブジェクトの構築を行います。
T | 初期化するオブジェクトの型 |
[out] | ptr | 初期化されたオブジェクトへのポインタ |
0 | 成功した場合 |
EAGAIN | コンストラクタ関数(ConstructorForLockFree<T>()() )がNULL を返した場合 |
ConstructorForLockFree<T>()()
を実行して作成されたオブジェクトへのポインタを*ptr
に代入します。 この際にmutexによる排他が行われることはなく、CAS(Compare-and-Swap)によりスレッドセーフに1回だけオブジェクトへのポインタが設定されます。 このため、複数のスレッドで同時にConstructorForLockFree<T>()()
が実行される場合があり、利用されないオブジェクトはDestructorForLockFree<T>()()
を実行して削除されます。 なお、*ptr
は静的にNULL
に初期化しておく必要があります。 LockFree.h の 617 行目に定義があります。
|
inlinenoexcept |
内部でVsnPrintf()
を呼び出す以外はsnprintf
相当の動作をします。
[out] | buf | 文字列の格納バッファ |
[in] | size | バッファ・サイズ(文字数) |
[in] | fmt | 書式の指定 |
VsnPrintf()
の戻り値を返します。
|
inlinenoexcept |
内部でVsnPrintf()
を実行します。
N | バッファ・サイズ(文字数) |
[out] | buf | 文字列の格納バッファ |
[in] | fmt | 書式の指定 |
VsnPrintf()
の戻り値を返します。
|
inlinenoexcept |
内部でVsnPrintf()
を呼び出す以外はsnwprintf
相当の動作をします。
[out] | buf | 文字列の格納バッファ |
[in] | size | バッファ・サイズ(文字数) |
[in] | fmt | 書式の指定 |
VsnPrintf()
の戻り値を返します。
|
inlinenoexcept |
内部でVsnPrintf()
を実行します。
N | バッファ・サイズ(文字数) |
[out] | buf | 文字列の格納バッファ |
[in] | fmt | 書式の指定 |
VsnPrintf()
の戻り値を返します。
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
vsnprintf()
を実行します。
[out] | buf | 文字列の格納バッファ |
[in] | size | バッファ・サイズ(文字数) |
[in] | fmt | 書式の指定 |
[in] | args | 引数リストへのポインタ |
buf
の最後にはヌル文字が書き込まれます。 呼び出し後にユーザーがva_end
を呼び出す必要があります。 vsnprintf
を実行しますが、エラー値等の動作の細部はプラットフォームにより異なることがあります。
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
noexcept |
VsnPrintf
のフォールバックです。ワイド文字版も実装されています。
[out] | buf | 文字列の格納バッファ |
[in] | size | バッファ・サイズ(文字数) |
[in] | fmt | 書式の指定 |
[in] | args | 引数リストへのポインタ |
vsnprintf
が存在しない環境か、それに類する環境においてVsnPrintf
から呼び出されます。 この関数を直接呼び出すことも可能です。 現在のところ浮動小数点型については指数表現は行われません。 errno
にエラー値が設定されます(errno
が存在する環境の場合)。 #
, xとX変換の場合、数値が0でないときに文字列0x(又は0X)が前に追加されます。また、o変換の場合、数値が0でないときに文字0が前に追加されます。 0
, 変換された値の左側を空白ではなく0で埋めます。'-'が指定されている場合には無視されます。精度が指定されている場合には無視されます。 -
, 左詰めにします。 +
, 符号付き変換された数値の前に、常に符号が置かれます。 int
型の値である必要があります。 hh
, 引数がchar
又はunsigned char
である場合 h
, 引数がshort
又はunsigned short
である場合 l
, 引数がlong
又はunsigned long
である場合 ll
, 引数がlong long
又はunsigned long long
である場合 z
, 引数がsize_t
である場合 d
, i
, 符号付き整数 o
, u
, x
, X
, 符号なし整数 c
, 文字(char
型) s
, 文字列(const char*
型), %ls
の場合はconst wchar_t*
型の文字列であるとされますが、下位8bitに対応する文字が出力されます。 p
, ポインタアドレスを16進数で出力します。 © 2012-2016 Nintendo Co., Ltd. All rights reserved.