diff options
author | Stefan Radomski <github@mintwerk.de> | 2016-12-12 20:59:18 (GMT) |
---|---|---|
committer | Stefan Radomski <github@mintwerk.de> | 2016-12-12 20:59:18 (GMT) |
commit | e7747902e509cdbf895af3a7bc2025fe8193e3f7 (patch) | |
tree | 19ce2a4d5994ae95f7375e283d148affb501d5c7 /src/uscxml/util/Convenience.cpp | |
parent | 5d944642883e1f8951f1c2df5b7d72d06b5daee7 (diff) | |
download | uscxml-e7747902e509cdbf895af3a7bc2025fe8193e3f7.zip uscxml-e7747902e509cdbf895af3a7bc2025fe8193e3f7.tar.gz uscxml-e7747902e509cdbf895af3a7bc2025fe8193e3f7.tar.bz2 |
Reduced header dependencies
Diffstat (limited to 'src/uscxml/util/Convenience.cpp')
-rw-r--r-- | src/uscxml/util/Convenience.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/uscxml/util/Convenience.cpp b/src/uscxml/util/Convenience.cpp index 7ceb875..a0263d2 100644 --- a/src/uscxml/util/Convenience.cpp +++ b/src/uscxml/util/Convenience.cpp @@ -23,6 +23,26 @@ namespace uscxml { +NumAttr::NumAttr(const std::string& str) { + size_t valueStart = str.find_first_of("0123456789."); + if (valueStart != std::string::npos) { + size_t valueEnd = str.find_last_of("0123456789."); + if (valueEnd != std::string::npos) { + value = str.substr(valueStart, (valueEnd - valueStart) + 1); + size_t unitStart = str.find_first_not_of(" \t", valueEnd + 1); + if (unitStart != std::string::npos) { + size_t unitEnd = str.find_last_of(" \t"); + if (unitEnd != std::string::npos && unitEnd > unitStart) { + unit = str.substr(unitStart, unitEnd - unitStart); + } else { + unit = str.substr(unitStart, str.length() - unitStart); + } + } + } + } +} + + bool isnan(double x) { return x != x; } |