1 #ifndef STAN__GM__ARGUMENTS__SINGLETON__ARGUMENT__BETA
2 #define STAN__GM__ARGUMENTS__SINGLETON__ARGUMENT__BETA
5 #include <boost/lexical_cast.hpp>
14 static std::string
name() {
return typeid(T).
name(); }
20 static std::string
name() {
return "int"; }
25 static std::string
name() {
return "unsigned int"; }
30 static std::string
name() {
return "double"; }
35 static std::string
name() {
return "boolean"; }
40 static std::string
name() {
return "string"; }
59 bool parse_args(std::vector<std::string>& args, std::ostream* out,
60 std::ostream* err,
bool& help_flag) {
64 if ( (args.back() ==
"help") || (args.back() ==
"help-all") ) {
79 T proposed_value = boost::lexical_cast<T>(
value);
84 *err << proposed_value <<
" is not a valid value for "
85 <<
"\"" <<
_name <<
"\"" << std::endl;
100 s <<
"good" << std::endl;
102 base_arg->
print(&s, 0,
"");
106 s <<
"bad" << std::endl;
108 base_arg->
print(&s, 0,
"");
118 std::vector<std::string>& valid_paths) {
137 return boost::lexical_cast<std::string>(
_value);
bool set_value(const T &value)
virtual void print_help(std::ostream *s, const int depth, const bool recurse=false)
bool parse_args(std::vector< std::string > &args, std::ostream *out, std::ostream *err, bool &help_flag)
singleton_argument(const std::string name)
static std::string name()
static std::string name()
std::string print_valid()
virtual void probe_args(argument *base_arg, std::stringstream &s)
singleton_argument< int > int_argument
std::string print_value()
singleton_argument< std::string > string_argument
static void split_arg(const std::string &arg, std::string &name, std::string &value)
singleton_argument< double > real_argument
static std::string name()
virtual bool is_valid(T value)
singleton_argument< unsigned int > u_int_argument
void find_arg(std::string name, std::string prefix, std::vector< std::string > &valid_paths)
static std::string name()
virtual void print(std::ostream *s, const int depth, const std::string prefix)=0
static std::string name()
static std::string name()
singleton_argument< bool > bool_argument