1
我試圖編譯一個使用Boost庫的Dalal and Triggs發佈的程序。由於作者使用的版本(1.35
)與我正在使用的版本(1.46
)之間的差異,我在Boost方法validation_error
中出錯。如何將字符串傳遞給Boost 1.46中的「validation_error」方法?
在old version,作者所使用的validation_error
方法有以下結構:
validation_error(const std::string & what);
而且我跑加速的version有以下幾點:
validation_error(kind_t kind, const std::string & option_value = "",
const std::string & option_name = "");
在代碼,作者將string
傳遞給舊的validation_error
方法(下面的示例)。
std::ostringstream ost;
ost << "value " << *value
<< " greater than max value " << max;
throw po::validation_error(ost.str());
我怎樣才能通過這個string
到validation_error
新版本?
是什麼'invalid_option_value'嗎?和'「選項名稱」? – Yamaneko
您正在描述驗證錯誤,在1.35中唯一的選擇是給字符串與描述,什麼是錯的。在1.46中,您必須以更系統的方式描述問題:您告訴kind_t枚舉錯誤(請檢查http://www.boost.org/doc/libs/1_46_0/doc/html/boost/program_options/validation_error .html),還會傳遞錯誤的值和未經驗證的選項名稱。 – Greg
我該如何傳遞'max'的值? – Yamaneko