Euphoria
numparse.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <optional>
4 
5 namespace eu
6 {
7 
8 
9 std::optional<int> locale_parse_int(const std::string& str);
10 std::optional<float> locale_parse_float(const std::string& str);
11 std::optional<bool> locale_parse_bool(const std::string& str);
12 
13 
14 
15 template<typename T>
16 std::optional<T>
17 locale_parse_generic(const std::string& str);
18 
19 
20 
21 #define SPECIALIZE(TYPE, FUN) \
22  template<> std::optional<TYPE> \
23  locale_parse_generic<TYPE>(const std::string& str);
24 
28  SPECIALIZE(std::string, string_parser)
29 #undef SPECIALIZE
30 
31 
32 }
33 
Definition: assert.h:90
std::optional< bool > locale_parse_bool(const std::string &str)
Definition: numparse.cc:35
std::optional< float > locale_parse_float(const std::string &str)
Definition: numparse.cc:25
std::optional< T > locale_parse_generic(const std::string &str)
std::optional< int > locale_parse_int(const std::string &str)
Definition: numparse.cc:10
#define SPECIALIZE(TYPE, FUN)
Definition: numparse.h:21