安全从数字字符串到整数的转换:
#include <boost/lexical_cast.hpp>
template <typename T>
bool safe_lexical_cast(const char* str, T& ret_val) {
try {
ret_val = boost::lexical_cast<T>(str);
return true;
} catch (boost::bad_lexical_cast& e) {
ret_val = 0;
LOG_WARNING("safe_lexical_cast fail, error:" << e.what());
}
return false;
}