diff options
Diffstat (limited to 'abseil-cpp/absl/flags/declare.h')
-rw-r--r-- | abseil-cpp/absl/flags/declare.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/abseil-cpp/absl/flags/declare.h b/abseil-cpp/absl/flags/declare.h index b9794d8..d1437bb 100644 --- a/abseil-cpp/absl/flags/declare.h +++ b/abseil-cpp/absl/flags/declare.h @@ -60,6 +60,14 @@ ABSL_NAMESPACE_END // The ABSL_DECLARE_FLAG(type, name) macro expands to: // // extern absl::Flag<type> FLAGS_name; -#define ABSL_DECLARE_FLAG(type, name) extern ::absl::Flag<type> FLAGS_##name +#define ABSL_DECLARE_FLAG(type, name) ABSL_DECLARE_FLAG_INTERNAL(type, name) + +// Internal implementation of ABSL_DECLARE_FLAG to allow macro expansion of its +// arguments. Clients must use ABSL_DECLARE_FLAG instead. +#define ABSL_DECLARE_FLAG_INTERNAL(type, name) \ + extern absl::Flag<type> FLAGS_##name; \ + namespace absl /* block flags in namespaces */ {} \ + /* second redeclaration is to allow applying attributes */ \ + extern absl::Flag<type> FLAGS_##name #endif // ABSL_FLAGS_DECLARE_H_ |