1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- /*
- * 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
|