@@ -45,6 +45,7 @@ struct FlagType<double> { using type = float; };
45
45
46
46
// The following macros provide a convenient mechanism for declaring,
47
47
// parsing, and using command line flags. See examples for usage.
48
+ // The macros are the public interface; the classes are private.
48
49
#define BEGIN_COMMAND_LINE_FLAGS \
49
50
llgtm::platform::CommandLineFlagRegistry global_commandline_flag_registry
50
51
@@ -62,6 +63,7 @@ struct FlagType<double> { using type = float; };
62
63
global_commandline_flag_registry.Parse(&ARGC, ARGV)
63
64
64
65
66
+ namespace { //
65
67
class CommandLineFlagRegistry ;
66
68
67
69
// Base class for command line flags.
@@ -95,9 +97,9 @@ class CommandLineFlagBase {
95
97
template <class T >
96
98
class CommandLineFlag : CommandLineFlagBase {
97
99
public:
98
- inline CommandLineFlag (const char * name, const char * type,
99
- const char * valstr, const char * docstr,
100
- T default_value, CommandLineFlagRegistry* registry);
100
+ CommandLineFlag (const char * name, const char * type,
101
+ const char * valstr, const char * docstr,
102
+ T default_value, CommandLineFlagRegistry* registry);
101
103
102
104
const T& value () const { return value_; }
103
105
@@ -144,13 +146,16 @@ class CommandLineFlagRegistry {
144
146
145
147
146
148
template <class T >
147
- CommandLineFlag<T>::CommandLineFlag(const char * name, const char * type,
148
- const char * valstr, const char * docstr,
149
- T default_value,
150
- CommandLineFlagRegistry* registry)
149
+ inline CommandLineFlag<T>::CommandLineFlag(const char * name,
150
+ const char * type,
151
+ const char * valstr,
152
+ const char * docstr,
153
+ T default_value,
154
+ CommandLineFlagRegistry* registry)
151
155
: CommandLineFlagBase(name, type, valstr, docstr), value_(default_value) {
152
156
registry->Register (this );
153
157
}
158
+ } // namespace
154
159
155
160
} // namespace platform
156
161
} // namespace llgtm
0 commit comments