Belle II Software  release-05-02-19
Conversion.cc
1 /*
2  * Conversion.cc
3  *
4  * Created on: Jul 2, 2015
5  * Author: tkeck
6  */
7 
8 #include <framework/utilities/Conversion.h>
9 #include <stdexcept>
10 
11 namespace Belle2 {
22  template<>
23  float convertString(const std::string& str)
24  {
25  std::string::size_type n;
26  float number = std::stof(str, &n);
27  if (n != str.size()) {
28  throw std::invalid_argument("Could only parse a part of the given string " + str);
29  }
30  return number;
31  }
32 
38  template<>
39  double convertString(const std::string& str)
40  {
41  std::string::size_type n;
42  double number = std::stod(str, &n);
43  if (n != str.size()) {
44  throw std::invalid_argument("Could only parse a part of the given string " + str);
45  }
46  return number;
47  }
48 
54  template<>
55  long double convertString(const std::string& str)
56  {
57  std::string::size_type n;
58  long double number = std::stold(str, &n);
59  if (n != str.size()) {
60  throw std::invalid_argument("Could only parse a part of the given string " + str);
61  }
62  return number;
63  }
64 
70  template<>
71  int convertString(const std::string& str)
72  {
73  std::string::size_type n;
74  int number = std::stoi(str, &n);
75  if (n != str.size()) {
76  throw std::invalid_argument("Could only parse a part of the given string " + str);
77  }
78  return number;
79  }
80 
86  template<>
87  long int convertString(const std::string& str)
88  {
89  std::string::size_type n;
90  long int number = std::stol(str, &n);
91  if (n != str.size()) {
92  throw std::invalid_argument("Could only parse a part of the given string " + str);
93  }
94  return number;
95  }
96 
102  template<>
103  unsigned long int convertString(const std::string& str)
104  {
105  std::string::size_type n;
106  unsigned long int number = std::stoul(str, &n);
107  if (n != str.size()) {
108  throw std::invalid_argument("Could only parse a part of the given string " + str);
109  }
110  return number;
111  }
112 
114 }
115 
116 
117 
Belle2::convertString
T convertString(const std::string &str)
Converts a string to type T (one of float, double, long double, int, long int, unsigned long int).
Definition: Conversion.cc:23
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19