Merge branch 'twanvl:master' into master

This commit is contained in:
Carl Miller, Jr
2021-08-24 22:53:39 -04:00
committed by GitHub
2 changed files with 22 additions and 16 deletions
+11 -16
View File
@@ -31,23 +31,18 @@
// ----------------------------------------------------------------------------- : Boost implementation
#if USE_BOOST_REGEX
// needed for boost::regex
inline std::size_t hash_value(wxUniChar const& x) {
boost::hash<int> hasher;
return hasher(static_cast<int>(x));
}
/*
// fix: boost regex doesn't like that wxUniChar can't be constructed from an int
namespace boost {
namespace BOOST_REGEX_DETAIL_NS {
inline bool can_start(wxUniChar c, const unsigned char* map, unsigned char mask) {
return can_start(c.GetValue(), map, mask);
}
inline bool can_start(wxUniCharRef c, const unsigned char* map, unsigned char mask) {
return can_start(c.GetValue(), map, mask);
}
// needed for boost::regex to compute hash values of unicode chars
#if BOOST_VERSION < 107600
inline std::size_t hash_value(wxUniChar const& x) {
boost::hash<int> hasher;
return hasher(static_cast<int>(x));
}
}*/
#else
// boost > 1.76 uses its own hash function that needs operator +
inline int operator + (wxUniChar x, unsigned int y) {
return static_cast<int>(x) + y;
}
#endif
/// Our own regular expression wrapper
/** Suppors both boost::regex and wxRegEx.
+11
View File
@@ -33,6 +33,17 @@ inline wxStdString const& toStdString(String const& s) {
#endif
}
#if wxVERSION_NUMBER < 3100
// wxWidgets 3.1.0 added this specialization
namespace std {
template<> struct hash<String> {
size_t operator()(String const& s) const {
return std::hash<std::wstring>()(s.ToStdWstring());
}
};
}
#endif
// ----------------------------------------------------------------------------- : Unicode
/// u if UNICODE is defined, a otherwise