From: Lucian Grijincu <lucian@fb.com> Date: Wed, 16 Sep 2015 18:32:54 +0000 (-0700) Subject: folly: ProgramOptions: avoid static init fiasco by using meyer's singleton X-Git-Tag: deprecate-dynamic-initializer~396 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=5a4feee627e92796b3bc7353730cbfcab287fddb;p=folly.git folly: ProgramOptions: avoid static init fiasco by using meyer's singleton Reviewed By: @elsteveogrande Differential Revision: D2446056 --- diff --git a/folly/experimental/ProgramOptions.cpp b/folly/experimental/ProgramOptions.cpp index 8146722e..8cf27137 100644 --- a/folly/experimental/ProgramOptions.cpp +++ b/folly/experimental/ProgramOptions.cpp @@ -166,29 +166,11 @@ class NegativeBoolGFlagValueSemantic : public BoolGFlagValueSemantic { } }; -static const std::unordered_set<std::string> gSkipFlags { - "flagfile", - "fromenv", - "tryfromenv", - "undefok", - "help", - "helpfull", - "helpshort", - "helpon", - "helpmatch", - "helppackage", - "helpxml", - "version", - "tab_completion_columns", - "tab_completion_word", -}; - -static const std::unordered_map<std::string, std::string> gFlagOverrides { - // Allow -v in addition to --v - {"v", "v,v"}, -}; - const std::string& getName(const std::string& name) { + static const std::unordered_map<std::string, std::string> gFlagOverrides{ + // Allow -v in addition to --v + {"v", "v,v"}, + }; auto pos = gFlagOverrides.find(name); return pos != gFlagOverrides.end() ? pos->second : name; } @@ -261,6 +243,23 @@ const std::unordered_map<std::string, FlagAdder> gFlagAdders = { } // namespace po::options_description getGFlags(ProgramOptionsStyle style) { + static const std::unordered_set<std::string> gSkipFlags{ + "flagfile", + "fromenv", + "tryfromenv", + "undefok", + "help", + "helpfull", + "helpshort", + "helpon", + "helpmatch", + "helppackage", + "helpxml", + "version", + "tab_completion_columns", + "tab_completion_word", + }; + po::options_description desc("GFlags"); std::vector<gflags::CommandLineFlagInfo> allFlags;