nlib
|
コマンドラインフラグをパースするためのクラスです。 [詳解]
#include "nn/nlib/Nflags.h"
静的公開メンバ関数 | |
static errno_t | Parse (int *argc, char ***argv) noexcept |
コマンドラインフラグをパースします。 [詳解] | |
static errno_t | Parse (int *argc, wchar_t ***argv) noexcept |
コマンドラインフラグをパースします。 [詳解] | |
static void | PrintHelp () noexcept |
コマンドラインヘルプを表示します。 [詳解] | |
static const char * | GetErrorMessage () noexcept |
エラーメッセージの文字列を取得します。 [詳解] | |
static errno_t | GetFileName (const char *path, char(&filename)[kMaxFileName]) noexcept |
コマンドライン文字列で指定されたパス文字列からファイル名を取得します。 [詳解] | |
static errno_t | GetDirName (const char *path, char(&dirname)[kMaxDirName]) noexcept |
コマンドライン文字列で指定されたパス文字列からディレクトリ名を取得します。 [詳解] | |
static errno_t | GetStringCommaList (char *arg, char **vec, size_t vec_count, size_t *written_count) noexcept |
コンマ区切りの(コマンドライン引数)文字列を分割して配列に格納します。 [詳解] | |
template<size_t N> | |
static errno_t | GetStringCommaList (char *arg, char *(&vec)[N], size_t *written_count) noexcept |
GetStringCommaList() の関数テンプレート版です。 | |
static errno_t | GetInt32CommaList (char *arg, int32_t *vec, size_t vec_count, size_t *written_count) noexcept |
コンマ区切りの(コマンドライン引数)文字列を分割して整数に変換して配列に格納します。 [詳解] | |
template<size_t N> | |
static errno_t | GetInt32CommaList (char *arg, int32_t(&vec)[N], size_t *written_count) noexcept |
GetInt32CommaList() の関数テンプレート版です。 | |
static errno_t | GetDoubleCommaList (char *arg, double *vec, size_t vec_count, size_t *written_count) noexcept |
コンマ区切りの(コマンドライン引数)文字列を分割してdouble 型に変換して配列に格納します。 [詳解] | |
template<size_t N> | |
static errno_t | GetDoubleCommaList (char *arg, double(&vec)[N], size_t *written_count) noexcept |
GetDoubleCommaList() の関数テンプレート版です。 | |
static bool | GetBoolFromEnv (const char *varname, bool defval) noexcept |
環境変数の値をパースしてbool 型の値を返します。環境変数が存在しなかったり、パースに失敗した場合はデフォルト値を返します。 [詳解] | |
static int32_t | GetInt32FromEnv (const char *varname, int32_t defval) noexcept |
環境変数の値をパースしてint32_t 型の値を返します。環境変数が存在しなかったり、パースに失敗した場合はデフォルト値を返します。 [詳解] | |
static int64_t | GetInt64FromEnv (const char *varname, int64_t defval) noexcept |
環境変数の値をパースしてint64_t 型の値を返します。環境変数が存在しなかったり、パースに失敗した場合はデフォルト値を返します。 [詳解] | |
static double | GetDoubleFromEnv (const char *varname, double defval) noexcept |
環境変数の値をパースしてdouble 型の値を返します。環境変数が存在しなかったり、パースに失敗した場合はデフォルト値を返します。 [詳解] | |
static const char * | GetStringFromEnv (UniquePtr< char[]> &buf, const char *varname, const char *defval) noexcept |
環境変数の値を文字列として返します。buf にそのために確保されたバッファを格納します。 [詳解] | |
コマンドラインフラグをパースするためのクラスです。
Nflags
はコマンドラインフラグの定義を複数のファイルに分散記述することができます。 この性質を利用して、各種ライブラリやモジュールにコマンドライン引数を設定しておくことで、再コンパイルなしにコマンドラインからプログラムの動作をカスタマイズすることが容易になります。 Nflags
を利用したコマンドライン処理コードの典型的な例です。 詳細は関数やマクロのリファレンスを参照してください。
|
staticnoexcept |
環境変数の値をパースしてbool
型の値を返します。環境変数が存在しなかったり、パースに失敗した場合はデフォルト値を返します。
[in] | varname | 環境変数名 |
[in] | defval | デフォルトの戻り値 |
"1", "t", "true", "y", "yes"
のいずれかの場合はtrue
を返します。 また、"0", "f", "false", "n", "no"
のいずれかの場合はfalse
を返します。 それ以外の場合はdefval
を返します。
|
staticnoexcept |
コマンドライン文字列で指定されたパス文字列からディレクトリ名を取得します。
[in] | path | パス文字列 |
[out] | dirname | ディレクトリ名文字列 |
path
の文字列はUTF-8に変換されてdirname
に格納されます。
|
staticnoexcept |
コンマ区切りの(コマンドライン引数)文字列を分割してdouble
型に変換して配列に格納します。
N | 数値リストの最大格納数 |
[in,out] | arg | コンマ区切りされた文字列 |
[out] | vec | 数値が格納される配列 |
[in] | vec_count | 配列vec のサイズ |
[out] | written_count | 格納された数値の数 |
0 | エラーは発生していません。 |
EINVAL | 引数にNULL や0を与えた場合 |
ERANGE | コンマで区切られた文字列の数がvec の要素数を超えた場合 |
EILSEQ | コンマで区切られた文字列で数値に変換できないものがあった場合 |
arg
内の文字列の内容は変更されていることに注意してください。
|
staticnoexcept |
環境変数の値をパースしてdouble
型の値を返します。環境変数が存在しなかったり、パースに失敗した場合はデフォルト値を返します。
[in] | varname | 環境変数名 |
[in] | defval | デフォルトの戻り値 |
|
staticnoexcept |
エラーメッセージの文字列を取得します。
Parse()
関数でエラーが発生した場合はエラーメッセージ文字列が設定されます。 この関数を利用することでその文字列を参照することができます。
|
staticnoexcept |
コマンドライン文字列で指定されたパス文字列からファイル名を取得します。
[in] | path | パス文字列 |
[out] | filename | ファイル名文字列 |
path
の文字列はUTF-8に変換されてfilename
に格納されます。
|
staticnoexcept |
コンマ区切りの(コマンドライン引数)文字列を分割して整数に変換して配列に格納します。
N | 整数リストの最大格納数 |
[in,out] | arg | コンマ区切りされた文字列 |
[out] | vec | 整数が格納される配列 |
[in] | vec_count | 配列vec のサイズ |
[out] | written_count | 格納された整数の数 |
0 | エラーは発生していません。 |
EINVAL | 引数にNULL や0を与えた場合 |
ERANGE | コンマで区切られた文字列の数がvec の要素数を超えた場合 |
EILSEQ | コンマで区切られた文字列で整数に変換できないものがあった場合 |
arg
内の文字列の内容は変更されていることに注意してください。
|
staticnoexcept |
環境変数の値をパースしてint32_t
型の値を返します。環境変数が存在しなかったり、パースに失敗した場合はデフォルト値を返します。
[in] | varname | 環境変数名 |
[in] | defval | デフォルトの戻り値 |
|
staticnoexcept |
環境変数の値をパースしてint64_t
型の値を返します。環境変数が存在しなかったり、パースに失敗した場合はデフォルト値を返します。
[in] | varname | 環境変数名 |
[in] | defval | デフォルトの戻り値 |
|
staticnoexcept |
コンマ区切りの(コマンドライン引数)文字列を分割して配列に格納します。
N | 文字列リストの最大格納数 |
[in,out] | arg | コンマ区切りされた文字列 |
[out] | vec | 文字列(へのポインタ)が格納される配列 |
[in] | vec_count | 配列vec のサイズ |
[out] | written_count | 格納された文字列の数 |
0 | 成功した場合 |
EINVAL | 引数にNULL や0を与えた場合 |
ERANGE | コンマで区切られた文字列の数がvec の要素数を超えた場合 |
--file=file1.txt,file2.txt,file3.txt
というようなコマンドラインフラグの引数を処理したい場合に利用します。 arg
内の文字列の内容は変更されていることに注意してください。 なお、Windows版では、arg
の文字列はUTF-8に変換されてvec
に格納されます。
|
inlinestaticnoexcept |
|
staticnoexcept |
コマンドラインフラグをパースします。
[in,out] | argc | コマンドラインフラグの個数へのポインタ。 |
[in,out] | argv | コマンドラインフラグへのポインタ。 |
0 | パースに成功した場合 |
EILSEQ | 書式が間違っている |
ENOENT | 指定されたオプションが存在しない |
argc
, argv
の「ポインタ」を渡します。 引数をパースして定義されたオプションを見つけ変数を設定します。 argc
, argv
から取り除かれます(引数の数が減る)。 また、'--'
の後に続く引数はこの関数では処理されません。
|
staticnoexcept |
コマンドラインフラグをパースします。
[in,out] | argc | コマンドラインフラグの個数へのポインタ。 |
[in,out] | argv | コマンドラインフラグへのポインタ。 |
0 | パースに成功した場合 |
EILSEQ | 書式が間違っている |
ENOENT | 指定されたオプションが存在しない |
argc
, argv
の「ポインタ」を渡します。 引数をパースして定義されたオプションを見つけ変数を設定します。 argc
, argv
から取り除かれます(引数の数が減る)。 また、'--'
の後に続く引数はこの関数では処理されません。
|
staticnoexcept |
コマンドラインヘルプを表示します。
true
の場合にこの関数を呼び出してプログラムを終了する、といった使い方をします。 この関数を呼び出さない限り--help
が指定されていてもコマンドラインヘルプは表示されません。 © 2012-2016 Nintendo Co., Ltd. All rights reserved.