summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--absl/flags/internal/commandlineflag.cc5
-rw-r--r--absl/flags/internal/commandlineflag.h11
-rw-r--r--absl/flags/parse.cc3
3 files changed, 14 insertions, 5 deletions
diff --git a/absl/flags/internal/commandlineflag.cc b/absl/flags/internal/commandlineflag.cc
index de588c13..f1e50d01 100644
--- a/absl/flags/internal/commandlineflag.cc
+++ b/absl/flags/internal/commandlineflag.cc
@@ -37,6 +37,11 @@ bool PrivateHandleInterface::ValidateInputValue(const CommandLineFlag& flag,
return flag.ValidateInputValue(value);
}
+void PrivateHandleInterface::CheckDefaultValueParsingRoundtrip(
+ const CommandLineFlag& flag) {
+ flag.CheckDefaultValueParsingRoundtrip();
+}
+
} // namespace flags_internal
ABSL_NAMESPACE_END
} // namespace absl
diff --git a/absl/flags/internal/commandlineflag.h b/absl/flags/internal/commandlineflag.h
index f807fb9a..f60204dd 100644
--- a/absl/flags/internal/commandlineflag.h
+++ b/absl/flags/internal/commandlineflag.h
@@ -151,10 +151,6 @@ class CommandLineFlag {
flags_internal::ValueSource source,
std::string* error) = 0;
- // Checks that flags default value can be converted to string and back to the
- // flag's value type.
- virtual void CheckDefaultValueParsingRoundtrip() const = 0;
-
protected:
~CommandLineFlag() = default;
@@ -175,6 +171,10 @@ class CommandLineFlag {
// Interfaces to operate on validators.
// Validates supplied value usign validator or parseflag routine
virtual bool ValidateInputValue(absl::string_view value) const = 0;
+
+ // Checks that flags default value can be converted to string and back to the
+ // flag's value type.
+ virtual void CheckDefaultValueParsingRoundtrip() const = 0;
};
// This class serves as a trampoline to access private methods of
@@ -191,6 +191,9 @@ class PrivateHandleInterface {
// Access to CommandLineFlag::ValidateInputValue.
static bool ValidateInputValue(const CommandLineFlag& flag,
absl::string_view value);
+
+ // Access to CommandLineFlag::CheckDefaultValueParsingRoundtrip.
+ static void CheckDefaultValueParsingRoundtrip(const CommandLineFlag& flag);
};
// This macro is the "source of truth" for the list of supported flag built-in
diff --git a/absl/flags/parse.cc b/absl/flags/parse.cc
index b60b36f6..b76edc62 100644
--- a/absl/flags/parse.cc
+++ b/absl/flags/parse.cc
@@ -298,7 +298,8 @@ void CheckDefaultValuesParsingRoundtrip() {
ABSL_FLAGS_INTERNAL_BUILTIN_TYPES(IGNORE_TYPE)
#undef IGNORE_TYPE
- flag->CheckDefaultValueParsingRoundtrip();
+ flags_internal::PrivateHandleInterface::CheckDefaultValueParsingRoundtrip(
+ *flag);
});
#endif
}