X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d1750c03ce3743f4e9f21745d3496b99cd8ee6c9..be7e10393ae37a8b6395c50ac258c2c77c98c946:/include/wx/wxcrt.h?ds=sidebyside diff --git a/include/wx/wxcrt.h b/include/wx/wxcrt.h index b99543cf3b..aa398aea5f 100644 --- a/include/wx/wxcrt.h +++ b/include/wx/wxcrt.h @@ -471,17 +471,21 @@ WX_STRCMP_FUNC(wxStricmp, wxCRT_StricmpA, wxCRT_StricmpW, wxStricmp_String) #if defined(wxCRT_StrcollA) && defined(wxCRT_StrcollW) -// GCC 3.3 and other compilers have a bug that causes it to fail compilation if +// GCC 3.4 and other compilers have a bug that causes it to fail compilation if // the template's implementation uses overloaded function declared later (see // the wxStrcoll() call in wxStrcoll_String()), so we have to // forward-declare the template and implement it below WX_STRCMP_FUNC. OTOH, // this fails to compile with VC6, so don't do it for VC. It also causes // problems with GCC visibility in newer GCC versions. -#if !(defined(__VISUALC__) || wxCHECK_GCC_VERSION(3,4)) +#if !(defined(__VISUALC__) || wxCHECK_GCC_VERSION(3,5)) + #define wxNEEDS_DECL_BEFORE_TEMPLATE +#endif + +#ifdef wxNEEDS_DECL_BEFORE_TEMPLATE template inline int wxStrcoll_String(const wxString& s1, const T& s2); WX_STRCMP_FUNC(wxStrcoll, wxCRT_StrcollA, wxCRT_StrcollW, wxStrcoll_String) -#endif // !__VISUALC__ +#endif // wxNEEDS_DECL_BEFORE_TEMPLATE template inline int wxStrcoll_String(const wxString& s1, const T& s2) @@ -497,8 +501,9 @@ inline int wxStrcoll_String(const wxString& s1, const T& s2) #endif } -#if defined(__VISUALC__) || wxCHECK_GCC_VERSION(3,4) -// this is exactly the same WX_STRCMP_FUNC line as above wxStrcoll_String<> +#ifndef wxNEEDS_DECL_BEFORE_TEMPLATE +// this is exactly the same WX_STRCMP_FUNC line as above, insde the +// wxNEEDS_DECL_BEFORE_TEMPLATE case WX_STRCMP_FUNC(wxStrcoll, wxCRT_StrcollA, wxCRT_StrcollW, wxStrcoll_String) #endif @@ -987,4 +992,6 @@ wxDEPRECATED( inline int wxIsctrl(const wxUniChar& c) ); inline int wxIsctrl(const wxUniChar& c) { return wxIscntrl(c); } #endif // WXWIN_COMPATIBILITY_2_8 +inline bool wxIsascii(const wxUniChar& c) { return c.IsAscii(); } + #endif /* _WX_WXCRT_H_ */