2015-06-19 37 views
0

我設置flagfile這樣的:如何在gflags中設置標誌文件的默認值?

DECLARE_string(flagfile); 
int main(int argc, char** argv) { 
    FLAGS_flagfile = "./conf/default.conf" 
    ParseCommandLineFlags(&argc, &argv, true); 
    .... 
} 

然後通過命令行

./main --flagfile=./conf/another.conf 

改變flagfile但flagfile仍然是 「./conf/default.conf」

如何設置flagfile的默認價值,也接受命令行的變化?

回答

0

在調用ParseCommandLineFlags函數之前,您可以自己簡單地檢查參數。

例如像:

std::regex flag_regex("--flagfile=(.+.conf)") 
std::smatch reg_match; 
if(std::regex_match(std::string(argv[1]), reg_match, flag_regex){ 
    FLAGS_flagfile = reg_match[0]; 
} 

這樣,你會用其他的配置文件。您可以根據需要更改正則表達式以進行不同的匹配。