compilation fixes for wxAnyStrPtr for VC7; mention it in the change log
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59826 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -33,6 +33,12 @@ changes:
|
|||||||
wxString, in many cases code using it won't compile any more and NULL
|
wxString, in many cases code using it won't compile any more and NULL
|
||||||
should be replaced with an empty string.
|
should be replaced with an empty string.
|
||||||
|
|
||||||
|
- Functions returning "const wxChar *" were changed as well. Mostly they now
|
||||||
|
return wxString which is then transparently convertible to either "const char
|
||||||
|
*" or "const wchar_t *" but in some cases, notably wxDateTime::ParseXXX(),
|
||||||
|
the returned string could be NULL and so a separate helper class is used. If
|
||||||
|
you obtain compilation errors because of this, you can always correct them by
|
||||||
|
explicitly assigning the function return value to a variable of wanted type.
|
||||||
|
|
||||||
- Some structure fields which used to be of type "const wxChar *" (such as
|
- Some structure fields which used to be of type "const wxChar *" (such as
|
||||||
wxCmdLineEntryDesc::shortName, longName and description fields) are now of
|
wxCmdLineEntryDesc::shortName, longName and description fields) are now of
|
||||||
|
@@ -61,10 +61,9 @@ public:
|
|||||||
// different conversions to pointers)
|
// different conversions to pointers)
|
||||||
operator bool() const { return m_str != NULL; }
|
operator bool() const { return m_str != NULL; }
|
||||||
|
|
||||||
#ifdef __VISUALC6__
|
// at least VC6 and VC7 also need this one or they complain about ambiguity
|
||||||
// FIXME-VC6: it also needs this one or it complains about ambiguity
|
// for !anystr expressions
|
||||||
bool operator!() const { return !((bool)*this); }
|
bool operator!() const { return !((bool)*this); }
|
||||||
#endif // __VISUALC6__
|
|
||||||
|
|
||||||
|
|
||||||
// and these are the conversions operator which allow to assign the result
|
// and these are the conversions operator which allow to assign the result
|
||||||
@@ -129,22 +128,21 @@ public:
|
|||||||
// already works fine.
|
// already works fine.
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// the original string and the offset in it we correspond to, if the string
|
// the original string and the position in it we correspond to, if the
|
||||||
// is NULL this object is NULL pointer-like
|
// string is NULL this object is NULL pointer-like
|
||||||
const wxString * const m_str;
|
const wxString * const m_str;
|
||||||
const wxString::const_iterator m_iter;
|
const wxString::const_iterator m_iter;
|
||||||
|
|
||||||
wxDECLARE_NO_ASSIGN_CLASS(wxAnyStrPtr);
|
wxDECLARE_NO_ASSIGN_CLASS(wxAnyStrPtr);
|
||||||
};
|
};
|
||||||
|
|
||||||
// FIXME-VC6: expressions involving logical operations are not compiled
|
// at least for VC6 and VC7 these operators are needed too, otherwise boolean
|
||||||
// correctly without these operators
|
// expressions involving wxAnyStrPtr don't compile because of ambiguity between
|
||||||
#ifdef __VISUALC6__
|
// built-in overloads of these operators for (bool, bool/char*/wchar_t*)
|
||||||
inline bool operator||(const wxAnyStrPtr& p, bool v) { return (bool)p || v; }
|
inline bool operator||(const wxAnyStrPtr& p, bool v) { return (bool)p || v; }
|
||||||
inline bool operator||(bool v, const wxAnyStrPtr& p) { return v || (bool)p; }
|
inline bool operator||(bool v, const wxAnyStrPtr& p) { return v || (bool)p; }
|
||||||
inline bool operator&&(const wxAnyStrPtr& p, bool v) { return (bool)p && v; }
|
inline bool operator&&(const wxAnyStrPtr& p, bool v) { return (bool)p && v; }
|
||||||
inline bool operator&&(bool v, const wxAnyStrPtr& p) { return v && (bool)p; }
|
inline bool operator&&(bool v, const wxAnyStrPtr& p) { return v && (bool)p; }
|
||||||
#endif // __VISUALC6__
|
|
||||||
|
|
||||||
#endif // _WX_ANYSTR_H_
|
#endif // _WX_ANYSTR_H_
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user