]> git.saurik.com Git - wxWidgets.git/commitdiff
added support for passing std::[w]string to 'vararg' templates
authorVáclav Slavík <vslavik@fastmail.fm>
Sun, 29 Apr 2007 08:04:58 +0000 (08:04 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Sun, 29 Apr 2007 08:04:58 +0000 (08:04 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45710 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/strvararg.h

index 459c0ffeeca87a39774a96eabe673c8afb84a842..1077ac301f423d3f177d72c4a23a9dc349ead05c 100644 (file)
@@ -320,6 +320,53 @@ WX_ARG_NORMALIZER_FORWARD(const wxCharBuffer&, const char*);
 WX_ARG_NORMALIZER_FORWARD(wxWCharBuffer, const wchar_t*);
 WX_ARG_NORMALIZER_FORWARD(const wxWCharBuffer&, const wchar_t*);
 
+// versions for std::[w]string:
+#if wxUSE_STD_STRING
+
+#include "wx/stringimpl.h"
+
+#if !wxUSE_UTF8_LOCALE_ONLY
+template<>
+struct wxArgNormalizerWchar<const std::string&>
+    : public wxArgNormalizerWchar<const char*>
+{
+    wxArgNormalizerWchar(const std::string& s)
+        : wxArgNormalizerWchar<const char*>(s.c_str()) {}
+};
+
+template<>
+struct wxArgNormalizerWchar<const wxStdWideString&>
+    : public wxArgNormalizerWchar<const wchar_t*>
+{
+    wxArgNormalizerWchar(const wxStdWideString& s)
+        : wxArgNormalizerWchar<const wchar_t*>(s.c_str()) {}
+};
+#endif // !wxUSE_UTF8_LOCALE_ONLY
+
+#if wxUSE_UNICODE_UTF8
+template<>
+struct wxArgNormalizerUtf8<const std::string&>
+    : public wxArgNormalizerUtf8<const char*>
+{
+    wxArgNormalizerUtf8(const std::string& s)
+        : wxArgNormalizerUtf8<const char*>(s.c_str()) {}
+};
+
+template<>
+struct wxArgNormalizerUtf8<const wxStdWideString&>
+    : public wxArgNormalizerUtf8<const wchar_t*>
+{
+    wxArgNormalizerUtf8(const wxStdWideString& s)
+        : wxArgNormalizerUtf8<const wchar_t*>(s.c_str()) {}
+};
+#endif // wxUSE_UNICODE_UTF8
+
+WX_ARG_NORMALIZER_FORWARD(std::string, const std::string&);
+WX_ARG_NORMALIZER_FORWARD(wxStdWideString, const wxStdWideString&);
+
+#endif // wxUSE_STD_STRING
+
+
 #undef WX_ARG_NORMALIZER_FORWARD
 #undef _WX_ARG_NORMALIZER_FORWARD_IMPL