]> git.saurik.com Git - wxWidgets.git/commitdiff
optimize wxFormatStringArgumentFinder<T> for strings and make it work correctly for...
authorVáclav Slavík <vslavik@fastmail.fm>
Tue, 29 Jul 2008 23:10:04 +0000 (23:10 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Tue, 29 Jul 2008 23:10:04 +0000 (23:10 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54838 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/strvararg.h

index 4cbe39b3aa0dfb940c5e33a51fd497cdc561e015..b7a1a19d865995dfc37ce303d1c72516334e9b85 100644 (file)
@@ -227,10 +227,21 @@ struct wxFormatStringArgumentFinder<const wxFormatString&>
 
 template<>
 struct wxFormatStringArgumentFinder<wxFormatString>
-{
-    static wxFormatStringArgument find(const wxFormatString& arg)
-        { return wxFormatStringArgument(&arg); }
-};
+    : public wxFormatStringArgumentFinder<const wxFormatString&> {};
+
+// avoid passing big objects by value to wxFormatStringArgumentFinder::find()
+// (and especially wx[W]CharBuffer with its auto_ptr<> style semantics!):
+template<>
+struct wxFormatStringArgumentFinder<wxString>
+    : public wxFormatStringArgumentFinder<const wxString&> {};
+
+template<>
+struct wxFormatStringArgumentFinder<wxCharBuffer>
+    : public wxFormatStringArgumentFinder<const wxCharBuffer&> {};
+
+template<>
+struct wxFormatStringArgumentFinder<wxWCharBuffer>
+    : public wxFormatStringArgumentFinder<const wxWCharBuffer&> {};
 
 
 // ----------------------------------------------------------------------------