int nwxString::FindNoCase( const wxString &str, const wxString &substr) { wxString ss(str); wxString ssub(substr); ss.MakeLower(); ssub.MakeLower(); int nRtn = ss.Find((const wxChar *)ssub); return nRtn; }
static_assert(mul<int>(17,22) == Result<int>{false, 374}); static_assert(mul<int>(INT_MAX / 22, 23) == Result<int>{true, -2049870757}); static_assert(mul<int>(INT_MIN / 22, -23) == Result<int>{true, -2049870757}); constexpr Result<int> sadd(int lhs, int rhs) { int sum{}; return {__builtin_sadd_overflow(lhs, rhs, &sum), sum}; } static_assert(sadd(17,22) == Result<int>{false, 39}); static_assert(sadd(INT_MAX - 22, 23) == Result<int>{true, INT_MIN}); static_assert(sadd(INT_MIN + 22, -23) == Result<int>{true, INT_MAX}); constexpr Result<int> ssub(int lhs, int rhs) { int sum{}; return {__builtin_ssub_overflow(lhs, rhs, &sum), sum}; } static_assert(ssub(17,22) == Result<int>{false, -5}); static_assert(ssub(INT_MAX - 22, -23) == Result<int>{true, INT_MIN}); static_assert(ssub(INT_MIN + 22, 23) == Result<int>{true, INT_MAX}); constexpr Result<int> smul(int lhs, int rhs) { int sum{}; return {__builtin_smul_overflow(lhs, rhs, &sum), sum}; } static_assert(smul(17,22) == Result<int>{false, 374}); static_assert(smul(INT_MAX / 22, 23) == Result<int>{true, -2049870757}); static_assert(smul(INT_MIN / 22, -23) == Result<int>{true, -2049870757});