aboutsummaryrefslogtreecommitdiff
path: root/Src/external_dependencies/openmpt-trunk/common/mptStringParse.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Src/external_dependencies/openmpt-trunk/common/mptStringParse.cpp')
-rw-r--r--Src/external_dependencies/openmpt-trunk/common/mptStringParse.cpp98
1 files changed, 98 insertions, 0 deletions
diff --git a/Src/external_dependencies/openmpt-trunk/common/mptStringParse.cpp b/Src/external_dependencies/openmpt-trunk/common/mptStringParse.cpp
new file mode 100644
index 00000000..a4306f32
--- /dev/null
+++ b/Src/external_dependencies/openmpt-trunk/common/mptStringParse.cpp
@@ -0,0 +1,98 @@
+/*
+ * mptStringParse.cpp
+ * ------------------
+ * Purpose: Convert strings to other types.
+ * Notes : (currently none)
+ * Authors: OpenMPT Devs
+ * The OpenMPT source code is released under the BSD license. Read LICENSE for more details.
+ */
+
+
+#include "stdafx.h"
+#include "mptStringParse.h"
+
+#include "mpt/parse/parse.hpp"
+
+
+OPENMPT_NAMESPACE_BEGIN
+
+
+template<typename T>
+inline T ConvertStrToHelper(const std::string &str)
+{
+ return mpt::ConvertStringTo<T>(str);
+}
+template<> inline bool ConvertStrToHelper(const std::string &str) { return ConvertStrToHelper<int>(str)?true:false; }
+template<> inline signed char ConvertStrToHelper(const std::string &str) { return static_cast<signed char>(ConvertStrToHelper<signed int>(str)); }
+template<> inline unsigned char ConvertStrToHelper(const std::string &str) { return static_cast<unsigned char>(ConvertStrToHelper<unsigned int>(str)); }
+
+#if MPT_WSTRING_FORMAT
+template<typename T>
+inline T ConvertStrToHelper(const std::wstring &str)
+{
+ return mpt::ConvertStringTo<T>(str);
+}
+template<> inline bool ConvertStrToHelper(const std::wstring &str) { return ConvertStrToHelper<int>(str)?true:false; }
+template<> inline signed char ConvertStrToHelper(const std::wstring &str) { return static_cast<signed char>(ConvertStrToHelper<signed int>(str)); }
+template<> inline unsigned char ConvertStrToHelper(const std::wstring &str) { return static_cast<unsigned char>(ConvertStrToHelper<unsigned int>(str)); }
+#endif
+
+bool ConvertStrToBool(const std::string &str) { return ConvertStrToHelper<bool>(str); }
+signed char ConvertStrToSignedChar(const std::string &str) { return ConvertStrToHelper<signed char>(str); }
+unsigned char ConvertStrToUnsignedChar(const std::string &str) { return ConvertStrToHelper<unsigned char>(str); }
+signed short ConvertStrToSignedShort(const std::string &str) { return ConvertStrToHelper<signed short>(str); }
+unsigned short ConvertStrToUnsignedShort(const std::string &str) { return ConvertStrToHelper<unsigned short>(str); }
+signed int ConvertStrToSignedInt(const std::string &str) { return ConvertStrToHelper<signed int>(str); }
+unsigned int ConvertStrToUnsignedInt(const std::string &str) { return ConvertStrToHelper<unsigned int>(str); }
+signed long ConvertStrToSignedLong(const std::string &str) { return ConvertStrToHelper<signed long>(str); }
+unsigned long ConvertStrToUnsignedLong(const std::string &str) { return ConvertStrToHelper<unsigned long>(str); }
+signed long long ConvertStrToSignedLongLong(const std::string &str) { return ConvertStrToHelper<signed long long>(str); }
+unsigned long long ConvertStrToUnsignedLongLong(const std::string &str) { return ConvertStrToHelper<unsigned long long>(str); }
+float ConvertStrToFloat(const std::string &str) { return ConvertStrToHelper<float>(str); }
+double ConvertStrToDouble(const std::string &str) { return ConvertStrToHelper<double>(str); }
+long double ConvertStrToLongDouble(const std::string &str) { return ConvertStrToHelper<long double>(str); }
+
+#if MPT_WSTRING_FORMAT
+bool ConvertStrToBool(const std::wstring &str) { return ConvertStrToHelper<bool>(str); }
+signed char ConvertStrToSignedChar(const std::wstring &str) { return ConvertStrToHelper<signed char>(str); }
+unsigned char ConvertStrToUnsignedChar(const std::wstring &str) { return ConvertStrToHelper<unsigned char>(str); }
+signed short ConvertStrToSignedShort(const std::wstring &str) { return ConvertStrToHelper<signed short>(str); }
+unsigned short ConvertStrToUnsignedShort(const std::wstring &str) { return ConvertStrToHelper<unsigned short>(str); }
+signed int ConvertStrToSignedInt(const std::wstring &str) { return ConvertStrToHelper<signed int>(str); }
+unsigned int ConvertStrToUnsignedInt(const std::wstring &str) { return ConvertStrToHelper<unsigned int>(str); }
+signed long ConvertStrToSignedLong(const std::wstring &str) { return ConvertStrToHelper<signed long>(str); }
+unsigned long ConvertStrToUnsignedLong(const std::wstring &str) { return ConvertStrToHelper<unsigned long>(str); }
+signed long long ConvertStrToSignedLongLong(const std::wstring &str) { return ConvertStrToHelper<signed long long>(str); }
+unsigned long long ConvertStrToUnsignedLongLong(const std::wstring &str) { return ConvertStrToHelper<unsigned long long>(str); }
+float ConvertStrToFloat(const std::wstring &str) { return ConvertStrToHelper<float>(str); }
+double ConvertStrToDouble(const std::wstring &str) { return ConvertStrToHelper<double>(str); }
+long double ConvertStrToLongDouble(const std::wstring &str) { return ConvertStrToHelper<long double>(str); }
+#endif
+
+
+namespace mpt
+{
+namespace String
+{
+namespace Parse
+{
+
+template<typename T>
+T HexToHelper(const std::string &str)
+{
+ return mpt::ConvertHexStringTo<T>(str);
+}
+template<> unsigned char HexToHelper(const std::string &str) { return static_cast<unsigned char>(HexToHelper<unsigned int>(str)); }
+
+unsigned char HexToUnsignedChar(const std::string &str) { return HexToHelper<unsigned char>(str); }
+unsigned short HexToUnsignedShort(const std::string &str) { return HexToHelper<unsigned short>(str); }
+unsigned int HexToUnsignedInt(const std::string &str) { return HexToHelper<unsigned int>(str); }
+unsigned long HexToUnsignedLong(const std::string &str) { return HexToHelper<unsigned long>(str); }
+unsigned long long HexToUnsignedLongLong(const std::string &str) { return HexToHelper<unsigned long long>(str); }
+
+} // namespace Parse
+} // namespace String
+} // namespace mpt
+
+
+OPENMPT_NAMESPACE_END