pokered/music/pokeredmusicdisasm/args.h

38 lines
1.1 KiB
C
Raw Normal View History

#ifndef ARGS_H
#define ARGS_H
#include <string>
#include <vector>
#include <sstream>
class Args
{
public:
Args(int _argc, char**& _argv);
template<class T> // Get the argument automatically in any format that stringstream can output to
void GetValueC(int ind, T& var, std::ios_base::fmtflags flags = std::ios_base::dec, bool param2 = false)
{
std::stringstream _tmpstr;
_tmpstr << GetValue(ind, param2);
_tmpstr.flags(flags);
_tmpstr >> var;
}
int GetArgs(); // Get number of args
std::string GetArgv(int ind); // Get the arg based on true index
bool IsLongOption(int ind); // Is that argument a --long-key=value
bool IsShortOption(int ind, bool param2 = false); // Is that argument a --long-key=value
std::string GetKey(int ind); // Get the key, if not a key/value then returns the arg
std::string GetValue(int ind, bool param2 = false); // Get the value, if not a key/value then returns the arg
int SearchKeys(const char* str); // Return the index number of found key or -1 if not found
private:
int argc;
std::vector<std::string> argv;
};
#endif