summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/IceUtil/Unicode.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/cpp/src/IceUtil/Unicode.cpp b/cpp/src/IceUtil/Unicode.cpp
index c4ea2d36b16..2f553cd099a 100644
--- a/cpp/src/IceUtil/Unicode.cpp
+++ b/cpp/src/IceUtil/Unicode.cpp
@@ -158,3 +158,24 @@ IceUtil::stringToWstring(const string& str)
return result;
}
+
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1300)
+//
+// See comments in IceUtil/Unicode.h
+//
+string
+IceUtil::wstringToString(const basic_string<__wchar_t>& str)
+{
+ assert(sizeof(__wchar_t) == SIZEOF_WCHAR_T);
+ return wstringToString(*reinterpret_cast<const wstring*>(&str));
+}
+
+basic_string<__wchar_t>
+IceUtil::stringToNativeWstring(const string& str)
+{
+ assert(sizeof(__wchar_t) == SIZEOF_WCHAR_T);
+ return *reinterpret_cast<basic_string<__wchar_t>* >(&stringToWstring(str));
+}
+
+#endif