CommonLibrary  0.9.0
ArgList クラス

オプションや引数を解析して登録するためのクラス [詳解]

公開メンバ関数

 ArgList (int argc, char *argv[], const DefaultOption *defaultOpt)
 引数とデフォルト・オプションを指定して構築 [詳解]
 
bool isSet (const std::string &key) const
 オプションが設定されていたか取得する [詳解]
 
bool getOptValue (const std::string &key, std::string *value) const
 オプションの値を返す [詳解]
 
bool getOptDesc (const std::string &key, std::string *desc) const
 説明文を返す [詳解]
 
std::vector< std::string > optIdents () const
 登録されたオプション・キー(識別子)のリストを返す [詳解]
 
size_t optSize () const
 オプションの数を返す [詳解]
 
std::string getArgValue (size_t i) const
 登録された引数のリストを返す [詳解]
 
size_t argSize () const
 登録された引数の数を返す [詳解]
 

詳解

オプションや引数を解析して登録するためのクラス

以下のような形で DefaultOption と併せて利用する

DefaultOption opts[] = {
// 識別子 タグのリスト 説明文 値を持つか
{ "test1", "-t,--test", "テスト", true },
{ "test2", "-t2,--test2", "テスト2", false },
{ 0, 0, 0, false },
};
ArgList args( argc, argv, opts );

構築子と解体子

ArgList::ArgList ( int  argc,
char *  argv[],
const DefaultOption defaultOpt 
)

引数とデフォルト・オプションを指定して構築

deafultOpt は、末尾の ident が NULL であることを前提としている

引数
argc引数の個数(プログラム名を含む)
argv引数のリスト(先頭はプログラム名)
defaultOpt利用できるオプションとそのデフォルト値を定義した構造体

関数詳解

bool ArgList::isSet ( const std::string &  key) const

オプションが設定されていたか取得する

引数
keyキーとなる識別子
戻り値
オプションが引数の中にあれば true を返す
bool ArgList::getOptValue ( const std::string &  key,
std::string *  value 
) const

オプションの値を返す

値のないオプションに対しては "1" が返される

引数
keyキーとなる識別子
valueオプションの値を取得する変数へのポインタ
戻り値
オプションが引数の中にあれば true を返す
bool ArgList::getOptDesc ( const std::string &  key,
std::string *  desc 
) const

説明文を返す

引数
keyキーとなる識別子
desc説明文を取得する変数へのポインタ
戻り値
オプションが引数の中にあれば true を返す
std::vector< std::string > ArgList::optIdents ( ) const

登録されたオプション・キー(識別子)のリストを返す

引数にないもの(デフォルト・オプションとして渡されたもの)も含む

戻り値
オプション・キーのリスト
size_t ArgList::optSize ( ) const
inline

オプションの数を返す

引数にないもの(デフォルト・オプションとして渡されたもの)も含む

戻り値
オプション数
std::string ArgList::getArgValue ( size_t  i) const

登録された引数のリストを返す

オプション及びその値として認識されなかった文字列が返される

戻り値
引数のリスト
size_t ArgList::argSize ( ) const
inline

登録された引数の数を返す

オプション及びその値として認識されなかった文字列の数が返される

戻り値
引数の数

このクラス詳解は次のファイルから抽出されました: