diff options
-rw-r--r-- | absl/flags/internal/commandlineflag.cc | 5 | ||||
-rw-r--r-- | absl/flags/internal/commandlineflag.h | 11 | ||||
-rw-r--r-- | absl/flags/parse.cc | 3 |
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 } |