boostのlexical_キャスト使用

442 ワード

数値文字列から整数への変換を安全にします.
#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;
}