26 #ifndef MERCURYDPM_COMMANDLINE_HELPERS_H
27 #define MERCURYDPM_COMMANDLINE_HELPERS_H
46 for (
int i = 0;
i < argc-1; ++
i) {
47 if (varName == argv[
i]) {
48 value = atof(argv[
i+1]);
49 logger(
INFO,
"readFromCommandLine: % set to % ", varName.substr(1), value);
54 logger(
INFO,
"readFromCommandLine: % set to default value % ", varName.substr(1), value);
58 template<
typename T,
size_t n>
61 for (
int i = 0;
i < argc-1; ++
i) {
62 if (varName == argv[
i]) {
64 std::stringstream out;
65 for (
auto& v : value) {
70 logger(
INFO,
"readArrayFromCommandLine: % set to % ", varName.substr(1), out.str());
75 std::stringstream out;
76 for (
auto& v : value) out << v <<
' ';
77 logger(
INFO,
"readArrayFromCommandLine: % set to default value % ", varName.substr(1), out.str());
84 for (
int i = 0;
i < argc-1; ++
i) {
85 if (varName == argv[
i]) {
88 std::stringstream out;
89 for (
int j =
i+1; j<argc and argv[j][0]!=
'-'; ++j) {
90 values.push_back(atof(argv[j]));
91 out << values.back() <<
' ';
93 logger(
INFO,
"readVectorFromCommandLine: % set to % ", varName.substr(1), out.str());
98 std::stringstream out;
99 for (
auto& v: values) out << v <<
' ';
100 logger(
INFO,
"readVectorFromCommandLine: % set to default value % ", varName.substr(1), out.str());
105 std::string readFromCommandLine<std::string>(
int argc,
char* argv[], std::string varName, std::string value);
const unsigned n
Definition: CG3DPackingUnitTest.cpp:32
LL< Log::INFO > INFO
Info log level.
Definition: Logger.cc:55
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
const std::complex< Mdouble > i
Definition: ExtendedMath.h:51
Definition: CommandLineHelpers.h:32
bool readFromCommandLine(int argc, char *argv[], std::string varName)
Returns true if command line arguments contain varName, false else.
Definition: CommandLineHelpers.cc:103
std::array< T, n > readArrayFromCommandLine(int argc, char *argv[], std::string varName, std::array< T, n > value)
Definition: CommandLineHelpers.h:59
std::vector< T > readVectorFromCommandLine(int argc, char *argv[], std::string varName, size_t n, std::vector< T > values)
Definition: CommandLineHelpers.h:82
bool removeFromCommandline(int &argc, char *argv[], std::string varName, int nArgs)
May be used to hide arguments from argc and argv.
Definition: CommandLineHelpers.cc:43