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 {
00039 bool
00040 parse_value (std::string const& stringval,
00041 bool& value);
00042
00049 bool
00050 parse_value (std::string const& stringval,
00051 std::string& value);
00052
00059 template <typename T>
00060 bool
00061 parse_value (std::string const& stringval,
00062 T& value)
00063 {
00064 std::istringstream is(stringval);
00065 is.imbue(std::locale("C"));
00066 T tmpval;
00067 if (is >> tmpval)
00068 {
00069 value = tmpval;
00070 log_debug(DEBUG_NOTICE) << "value=" << value << std::endl;
00071 return true;
00072 }
00073 log_debug(DEBUG_NOTICE) << "parse error" << std::endl;
00074 return false;
00075 }
00076
00077 }
00078
00079 #endif
00080
00081
00082
00083
00084
00085