13 #ifndef MLPACK_CORE_BINDINGS_CLI_CLI_OPTION_HPP 14 #define MLPACK_CORE_BINDINGS_CLI_CLI_OPTION_HPP 69 const std::string& identifier,
70 const std::string& description,
71 const std::string& alias,
72 const std::string& cppName,
73 const bool required =
false,
74 const bool input =
true,
75 const bool noTranspose =
false,
76 const std::string& =
"")
81 data.
desc = description;
82 data.
name = identifier;
84 data.
alias = alias[0];
94 if (std::is_same<
typename std::remove_pointer
::type, 96 std::remove_pointer
::type>::type>::value) 98 data.
value = boost::any(defaultValue);
103 data.
value = boost::any(std::tuple
(defaultValue, tmp)); 106 const std::string tname = data.
tname;
108 typename std::remove_pointer
::type>(identifier); 109 std::string progOptId = (alias[0] !=
'\0') ?
110 "-" + std::string(1, alias[0]) +
",--" + cliName :
"--" + cliName;
113 const std::map
& parameters = 115 if (parameters.count(cliName) > 0)
120 #define BASH_RED "\033[0;31m" 121 #define BASH_CLEAR "\033[0m" 124 #define BASH_CLEAR "" 134 outstr <<
"Parameter --" << cliName <<
" (" << data.
alias <<
") " 135 <<
"is defined multiple times with the same identifiers." 156 &GetPrintableParamName
; 158 &GetPrintableParamValue
; 162 &DeleteAllocatedMemory
;
boost::any value
The actual value that is held.
Linear algebra utility functions, generally performed on matrices or vectors.
bool wasPassed
True if the option was passed to the program.
bool persistent
If this should be preserved across different settings (i.e.
static void Add(util::ParamData &&d)
Adds a parameter to the hierarchy; use the PARAM_*() macros instead of this (i.e. ...
std::string desc
Description of this parameter, if any.
bool input
True if this option is an input option (otherwise, it is output).
This structure holds all of the information about a single parameter, including its value (which is s...
bool loaded
If this is an input parameter that needs extra loading, this indicates whether or not it has been loa...
#define TYPENAME(x)
The TYPENAME macro is used internally to convert a type into a string.
static IO & GetSingleton()
Retrieve the singleton.
CLIOption(const N defaultValue, const std::string &identifier, const std::string &description, const std::string &alias, const std::string &cppName, const bool required=false, const bool input=true, const bool noTranspose=false, const std::string &="")
Construct an Option object.
char alias
Alias for this parameter.
std::string tname
Type information of this parameter.
std::string MapParameterName(const std::string &identifier, const typename boost::disable_if< arma::is_arma_type< T >>::type *=0, const typename boost::disable_if< data::HasSerialize< T >>::type *=0, const typename boost::disable_if< std::is_same< T, std::tuple< mlpack::data::DatasetInfo, arma::mat >>>::type *=0)
If needed, map the parameter name to the name that is used by CLI11.
A static object whose constructor registers a parameter with the IO class.
std::string name
Name of this parameter.
bool required
True if this option is required.
FunctionMapType functionMap
Utility struct to return the type that CLI11 should accept for a given input type.
std::string cppType
The true name of the type, as it would be written in C++.
Allows us to output to an ostream with a prefix at the beginning of each line, in the same way we wou...
static std::map< std::string, util::ParamData > & Parameters()
Return a modifiable list of parameters that IO knows about.
bool noTranspose
True if this is a matrix that should not be transposed.