Remove support for gcc < 4
We probably could drop support for some gcc 4.x versions too, but we definitely don't need to support gcc 3.x any longer and not doing it simplifies the code a bit, so just assume gcc >= 4. Closes https://github.com/wxWidgets/wxWidgets/pull/1943
This commit is contained in:
@@ -460,20 +460,9 @@ WX_STRCMP_FUNC(wxStricmp, wxCRT_StricmpA, wxCRT_StricmpW, wxStricmp_String)
|
||||
|
||||
#if defined(wxCRT_StrcollA) && defined(wxCRT_StrcollW)
|
||||
|
||||
// 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<T>()), so we have to
|
||||
// forward-declare the template and implement it below WX_STRCMP_FUNC. OTOH,
|
||||
// this causes problems with GCC visibility in newer GCC versions.
|
||||
#if !(wxCHECK_GCC_VERSION(3,5) && !wxCHECK_GCC_VERSION(4,7)) || defined(__clang__)
|
||||
#define wxNEEDS_DECL_BEFORE_TEMPLATE
|
||||
#endif
|
||||
|
||||
#ifdef wxNEEDS_DECL_BEFORE_TEMPLATE
|
||||
template<typename T>
|
||||
inline int wxStrcoll_String(const wxString& s1, const T& s2);
|
||||
WX_STRCMP_FUNC(wxStrcoll, wxCRT_StrcollA, wxCRT_StrcollW, wxStrcoll_String)
|
||||
#endif // wxNEEDS_DECL_BEFORE_TEMPLATE
|
||||
|
||||
template<typename T>
|
||||
inline int wxStrcoll_String(const wxString& s1, const T& s2)
|
||||
@@ -489,12 +478,6 @@ inline int wxStrcoll_String(const wxString& s1, const T& s2)
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifndef wxNEEDS_DECL_BEFORE_TEMPLATE
|
||||
// this is exactly the same WX_STRCMP_FUNC line as above, inside the
|
||||
// wxNEEDS_DECL_BEFORE_TEMPLATE case
|
||||
WX_STRCMP_FUNC(wxStrcoll, wxCRT_StrcollA, wxCRT_StrcollW, wxStrcoll_String)
|
||||
#endif
|
||||
|
||||
#endif // defined(wxCRT_Strcoll[AW])
|
||||
|
||||
template<typename T>
|
||||
|
Reference in New Issue
Block a user