00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef SBUILD_PARSE_VALUE_H
00021 #define SBUILD_PARSE_VALUE_H
00022
00023 #include <string>
00024
00025 #include "sbuild-log.h"
00026
00027 namespace sbuild
00028 {
00035 bool
00036 parse_value (std::string const& stringval,
00037 bool& value);
00038
00045 bool
00046 parse_value (std::string const& stringval,
00047 std::string& value);
00048
00055 template <typename T>
00056 bool
00057 parse_value (std::string const& stringval,
00058 T& value)
00059 {
00060 std::istringstream is(stringval);
00061 is.imbue(std::locale("C"));
00062 T tmpval;
00063 if (is >> tmpval)
00064 {
00065 value = tmpval;
00066 log_debug(DEBUG_NOTICE) << "value=" << value << std::endl;
00067 return true;
00068 }
00069 log_debug(DEBUG_NOTICE) << "parse error" << std::endl;
00070 return false;
00071 }
00072
00073 }
00074
00075 #endif
00076
00077
00078
00079
00080
00081