summaryrefslogtreecommitdiff
path: root/cpp/include/IceUtil/Unicode.h
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2005-09-22 14:01:13 +0000
committerBernard Normier <bernard@zeroc.com>2005-09-22 14:01:13 +0000
commit1fe509c0c26b31ee654dda17be99205362024f68 (patch)
treef0248f6827bece2662cc4899071c52b289c6b85a /cpp/include/IceUtil/Unicode.h
parentFix (diff)
downloadice-1fe509c0c26b31ee654dda17be99205362024f68.tar.bz2
ice-1fe509c0c26b31ee654dda17be99205362024f68.tar.xz
ice-1fe509c0c26b31ee654dda17be99205362024f68.zip
Ported IceUtil to VS 2005 Beta 2 x64
Diffstat (limited to 'cpp/include/IceUtil/Unicode.h')
-rw-r--r--cpp/include/IceUtil/Unicode.h41
1 files changed, 32 insertions, 9 deletions
diff --git a/cpp/include/IceUtil/Unicode.h b/cpp/include/IceUtil/Unicode.h
index 0846381ddb6..366e673b220 100644
--- a/cpp/include/IceUtil/Unicode.h
+++ b/cpp/include/IceUtil/Unicode.h
@@ -23,33 +23,56 @@ namespace IceUtil
// Since wstring is a typedef basic_string<wchar_t>, its type is also
// different depending on whether /Zc:wchar_t is used or not.
//
-// Ice is always built without /Zc:wchar_t, but provides wstringToString()
+// With Visual C++ 7.x, the default is typedef; with Visual C++ 8.0,
+// the default is native type.
+//
+// Ice is always built with the default, but provides wstringToString()
// and stringToWstring() implementations for both flavors of wstring.
//
# if defined(_NATIVE_WCHAR_T_DEFINED)
-//
-// We're using Ice with /Zc:wchar_t
-//
ICE_UTIL_API std::string wstringToString(const std::wstring&);
-ICE_UTIL_API std::wstring stringToNativeWstring(const std::string&);
+# if _MSC_VER >= 1400
+//
+// Building or using with VC8
+//
+ICE_UTIL_API std::wstring stringToWstring(const std::string&);
+ICE_UTIL_API std::string wstringToString(const std::basic_string<unsigned short>&);
+ICE_UTIL_API std::basic_string<unsigned short> stringToTypedefWstring(const std::string&);
+# else
+//
+// Using a VC7.x build with the non-default /Zc
+//
+ICE_UTIL_API std::wstring stringToNativeWstring(const std::string&);
inline std::wstring
stringToWstring(const std::string& str)
{
return stringToNativeWstring(str);
}
+# endif
# else
+ICE_UTIL_API std::string wstringToString(const std::wstring&);
+
+# if _MSC_VER < 1400
//
-// We're building Ice or using it without /Zc:wchar_t
+// Building or using with VC7.x
//
-ICE_UTIL_API std::string wstringToString(const std::wstring&);
ICE_UTIL_API std::wstring stringToWstring(const std::string&);
-
ICE_UTIL_API std::string wstringToString(const std::basic_string<__wchar_t>&);
ICE_UTIL_API std::basic_string<__wchar_t> stringToNativeWstring(const std::string&);
-
+# else
+//
+// Using a VC8.x build the non-default /Zc
+//
+ICE_UTIL_API std::wstring stringToTypedefWstring(const std::string&);
+inline std::wstring
+stringToWstring(const std::string& str)
+{
+ return stringToTypedefWstring(str);
+}
+# endif
# endif
#else