13 #ifndef MLPACK_CORE_BINDINGS_CLI_CLI_OPTION_HPP 14 #define MLPACK_CORE_BINDINGS_CLI_CLI_OPTION_HPP 70 const std::string& identifier,
71 const std::string& description,
72 const std::string& alias,
73 const std::string& cppName,
74 const bool required =
false,
75 const bool input =
true,
76 const bool noTranspose =
false,
77 const std::string& bindingName =
"")
82 data.
desc = description;
83 data.
name = identifier;
85 data.
alias = alias[0];
94 if (std::is_same<
typename std::remove_pointer<N>::type,
96 std::remove_pointer<N>::type>::type>::value)
98 data.
value = boost::any(defaultValue);
103 data.
value = boost::any(std::tuple<N, decltype(tmp)>(defaultValue, tmp));
106 const std::string tname = data.
tname;
108 typename std::remove_pointer<N>::type>(identifier);
109 std::string progOptId = (alias[0] !=
'\0') ?
110 "-" + std::string(1, alias[0]) +
",--" + cliName :
"--" + cliName;
121 IO::AddFunction(tname,
"GetPrintableParamName", &GetPrintableParamName<N>);
123 &GetPrintableParamValue<N>);
125 IO::AddFunction(tname,
"DeleteAllocatedMemory", &DeleteAllocatedMemory<N>);
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.
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.
char alias
Alias for this parameter.
std::string tname
Type information of this parameter.
A static object whose constructor registers a parameter with the IO class.
std::string MapParameterName(const std::string &identifier, const typename std::enable_if<!arma::is_arma_type< T >::value >::type *=0, const typename std::enable_if<!data::HasSerialize< T >::value >::type *=0, const typename std::enable_if<!std::is_same< T, std::tuple< mlpack::data::DatasetInfo, arma::mat >>::value >::type *=0)
If needed, map the parameter name to the name that is used by CLI11.
std::string name
Name of this parameter.
static void AddFunction(const std::string &type, const std::string &name, void(*func)(util::ParamData &, const void *, void *))
Add a function to the function map.
bool required
True if this option is required.
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 &bindingName="")
Construct an Option object.
static void AddParameter(const std::string &bindingName, util::ParamData &&d)
Adds a parameter to the hierarchy; use the PARAM_*() macros instead of this (i.e. ...
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++.
bool noTranspose
True if this is a matrix that should not be transposed.