summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2021-01-08 11:40:36 +0100
committerEelco Dolstra <edolstra@gmail.com>2021-01-08 11:40:36 +0100
commit1d4954e73e389d319416bf29e949b4b1cbc9ebd9 (patch)
tree9cb054c6cf053445a14ba961b191e4eb241ea372
parent48a9be2aabf6620ceb00caf7c4c917e4e0a81446 (diff)
Remove mkFlag integer specialisation
-rw-r--r--src/libmain/shared.cc16
-rw-r--r--src/libutil/args.hh18
2 files changed, 13 insertions, 21 deletions
diff --git a/src/libmain/shared.cc b/src/libmain/shared.cc
index 6751a3744..223020378 100644
--- a/src/libmain/shared.cc
+++ b/src/libmain/shared.cc
@@ -211,9 +211,19 @@ LegacyArgs::LegacyArgs(const std::string & programName,
});
auto intSettingAlias = [&](char shortName, const std::string & longName,
- const std::string & description, const std::string & dest) {
- mkFlag<unsigned int>(shortName, longName, description, [=](unsigned int n) {
- settings.set(dest, std::to_string(n));
+ const std::string & description, const std::string & dest)
+ {
+ addFlag({
+ .longName = longName,
+ .shortName = shortName,
+ .description = description,
+ .labels = {"n"},
+ .handler = {[=](std::string s) {
+ unsigned int n;
+ if (!string2Int(s, n))
+ throw UsageError("'%s' is not an integer", s);
+ settings.set(dest, std::to_string(n));
+ }}
});
};
diff --git a/src/libutil/args.hh b/src/libutil/args.hh
index 3e84ac64a..c54b0efaf 100644
--- a/src/libutil/args.hh
+++ b/src/libutil/args.hh
@@ -174,24 +174,6 @@ public:
});
}
- template<class I>
- void mkFlag(char shortName, const std::string & longName,
- const std::string & description, std::function<void(I)> fun)
- {
- addFlag({
- .longName = longName,
- .shortName = shortName,
- .description = description,
- .labels = {"N"},
- .handler = {[=](std::string s) {
- I n;
- if (!string2Int(s, n))
- throw UsageError("flag '--%s' requires a integer argument", longName);
- fun(n);
- }}
- });
- }
-
void expectArgs(ExpectedArg && arg)
{
expectedArgs.emplace_back(std::move(arg));