X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9356b709aa15b5304f9fcae7313bc90c451fc4c6..0d6e0565c62a19264eb7d02dc2c2a1bad403d3f7:/include/wx/strvararg.h?ds=sidebyside diff --git a/include/wx/strvararg.h b/include/wx/strvararg.h index e60392d2f7..b7a1a19d86 100644 --- a/include/wx/strvararg.h +++ b/include/wx/strvararg.h @@ -124,11 +124,6 @@ class WXDLLIMPEXP_FWD_BASE wxString; // accounts for string changes done by wxArgNormalizer<> // // Note that this class can _only_ be used for function arguments! -#ifdef __VISUALC__ - // "struct 'wx[W]CharBuffer' needs to have dll-interface to be used by - // clients of class 'wxString'" - this is private, we don't care - #pragma warning (disable:4251) -#endif class WXDLLIMPEXP_BASE wxFormatString { public: @@ -185,9 +180,6 @@ private: private: wxCharBuffer m_char; wxWCharBuffer m_wchar; -#ifdef __VISUALC__ - #pragma warning (default:4251) -#endif // NB: we can use a pointer here, because wxFormatString is only used // as function argument, so it has shorter life than the string @@ -235,10 +227,21 @@ struct wxFormatStringArgumentFinder template<> struct wxFormatStringArgumentFinder -{ - static wxFormatStringArgument find(const wxFormatString& arg) - { return wxFormatStringArgument(&arg); } -}; + : public wxFormatStringArgumentFinder {}; + +// avoid passing big objects by value to wxFormatStringArgumentFinder::find() +// (and especially wx[W]CharBuffer with its auto_ptr<> style semantics!): +template<> +struct wxFormatStringArgumentFinder + : public wxFormatStringArgumentFinder {}; + +template<> +struct wxFormatStringArgumentFinder + : public wxFormatStringArgumentFinder {}; + +template<> +struct wxFormatStringArgumentFinder + : public wxFormatStringArgumentFinder {}; // ----------------------------------------------------------------------------