Go to the documentation of this file. 15 #ifndef MLPACK_CORE_UTIL_PARAM_HPP 16 #define MLPACK_CORE_UTIL_PARAM_HPP 37 #define PROGRAM_INFO(NAME, DESC) static mlpack::util::ProgramDoc \ 38 cli_programdoc_dummy_object = mlpack::util::ProgramDoc(NAME, DESC); 57 #define PARAM_FLAG(ID, DESC, ALIAS) \ 58 PARAM_FLAG_INTERNAL(ID, DESC, ALIAS); 81 #define PARAM_INT_IN(ID, DESC, ALIAS, DEF) \ 82 PARAM_IN(int, ID, DESC, ALIAS, DEF, false) 109 #define PARAM_INT_OUT(ID, DESC) \ 110 PARAM_OUT(int, ID, DESC, "", 0, false) 133 #define PARAM_DOUBLE_IN(ID, DESC, ALIAS, DEF) \ 134 PARAM_IN(double, ID, DESC, ALIAS, DEF, false) 161 #define PARAM_DOUBLE_OUT(ID, DESC) \ 162 PARAM_OUT(double, ID, DESC, "", 0.0, false) 186 #define PARAM_STRING_IN(ID, DESC, ALIAS, DEF) \ 187 PARAM_IN(std::string, ID, DESC, ALIAS, DEF, false) 223 #define PARAM_STRING_OUT(ID, DESC, ALIAS) \ 224 PARAM_OUT(std::string, ID, DESC, ALIAS, "", false) 247 #define PARAM_VECTOR_IN(T, ID, DESC, ALIAS) \ 248 PARAM_IN(std::vector<T>, ID, DESC, ALIAS, std::vector<T>(), false) 276 #define PARAM_VECTOR_OUT(T, ID) \ 277 PARAM_OUT(std::vector<T>, ID, DESC, "", std::vector<T>(), false) 298 #define PARAM_INT_IN_REQ(ID, DESC, ALIAS) \ 299 PARAM_IN(int, ID, DESC, ALIAS, 0, true) 320 #define PARAM_DOUBLE_IN_REQ(ID, DESC, ALIAS) \ 321 PARAM_IN(double, ID, DESC, ALIAS, 0.0d, true) 342 #define PARAM_STRING_IN_REQ(ID, DESC, ALIAS) \ 343 PARAM_IN(std::string, ID, DESC, ALIAS, "", true) 365 #define PARAM_VECTOR_IN_REQ(T, ID, DESC, ALIAS) \ 366 PARAM_IN(std::vector<T>, ID, DESC, ALIAS, std::vector<T>(), true); 375 #define JOIN(x, y) JOIN_AGAIN(x, y) 376 #define JOIN_AGAIN(x, y) x ## y 394 #define PARAM_IN(T, ID, DESC, ALIAS, DEF, REQ) \ 395 static mlpack::util::Option<T> \ 396 JOIN(cli_option_dummy_object_in_, __COUNTER__) \ 397 (false, DEF, ID, DESC, ALIAS, REQ, true); 399 #define PARAM_OUT(T, ID, DESC, ALIAS, DEF, REQ) \ 400 static mlpack::util::Option<T> \ 401 JOIN(cli_option_dummy_object_out_, __COUNTER__) \ 402 (false, DEF, ID, DESC, ALIAS, REQ, false); 405 #define PARAM_FLAG_INTERNAL(ID, DESC, ALIAS) static \ 406 mlpack::util::Option<bool> JOIN(__io_option_flag_object_, __COUNTER__) \ 415 #define PARAM_IN(T, ID, DESC, ALIAS, DEF, REQ) \ 416 static mlpack::util::Option<T> \ 417 JOIN(JOIN(io_option_dummy_object_in_, __LINE__), opt) \ 418 (false, DEF, ID, DESC, ALIAS, REQ, true); 420 #define PARAM_OUT(T, ID, DESC, ALIAS, DEF, REQ) \ 421 static mlpack::util::Option<T> \ 422 JOIN(JOIN(io_option_dummy_object_out_, __LINE__), opt) \ 423 (false, DEF, ID, DESC, ALIAS, REQ, false); 426 #define PARAM_FLAG_INTERNAL(ID, DESC, ALIAS) static \ 427 mlpack::util::Option<bool> JOIN(__io_option_flag_object_, __LINE__) \