There are many code in the current trunk like below:
#if wxCHECK_VERSION(2, 9, 0)
Manager::Get()->GetLogManager()->DebugLog(F(_T("Looking for type: '%s' (%d components)"), actual.wx_str(), type_components.size()));
#else
Manager::Get()->GetLogManager()->DebugLog(F(_T("Looking for type: '%s' (%d components)"), actual.c_str(), type_components.size()));
#endif
After checking the wxWidgets header file(Windows)
D:\wxWidgets-2.8.10\include\wx\string.h
I find this statement:
const wxChar* wx_str() const { return c_str(); }
So, I just manually change above code to below( remove the preprocessor guard)
Manager::Get()->GetLogManager()->DebugLog(F(_T("Looking for type: '%s' (%d components)"), actual.wx_str(), type_components.size()));
It builds and works with no problem.
So, my question is: why not clean up these codes?
Thanks.
const wxChar* wx_str() const { return c_str(); }
This was added late to wxWidgets v2.8.10. If you remove the other option it'll break compilation of C::B on platforms where not the "latest" a.k.a v2.8.10 version of wxWidgets is available.
However, the cleanup will be done sooner or later...
I added the unneeded guard per an C::B dev request to get the patches applied.
The wx_str() has been in wxWidgets for years; but, it was obsoleted years ago.
Therefore, the was no wxWidgets docs saying it was safe to use.
From wxWidgets 2.8.0
// identical to c_str(), for wxWin 1.6x compatibility
const wxChar* wx_str() const { return c_str(); }
Tim S.