Changeset 2759


Ignore:
Timestamp:
Jun 22, 2013, 8:43:20 AM (6 years ago)
Author:
benlitz
Message:

Added comparison operators between strings and char const*

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lol/base/string.h

    r2746 r2759  
    196196    {
    197197        return !(*this == s);
     198    }
     199
     200
     201    inline bool operator ==(char const* sz) const
     202    {
     203        int i;
     204        for (i = 0; i < this->m_count; ++i)
     205        {
     206            if (i < this->m_count - 1 && sz[i] == '\0')
     207                return false;
     208
     209            if ((*this)[i] != sz[i])
     210                return false;
     211        }
     212
     213        return true;
     214    }
     215
     216    inline bool operator !=(char const* sz) const
     217    {
     218        return !(*this == sz);
    198219    }
    199220
     
    208229};
    209230
     231inline bool operator ==(char const* sz, String const &s)
     232{
     233    return s == sz;
     234}
     235
     236inline bool operator !=(char const* sz, String const &s)
     237{
     238    return s != sz;
     239}
     240
    210241} /* namespace lol */
    211242
  • trunk/test/unit/string.cpp

    r2731 r2759  
    123123        LOLUNIT_ASSERT(!(s1 != s3));
    124124    }
     125
     126        LOLUNIT_TEST(StringCharsEqual)
     127    {
     128                char const* sz = "abc";
     129        String s1("abc");
     130        String s2("ab");
     131
     132        LOLUNIT_ASSERT(s1 == sz);
     133        LOLUNIT_ASSERT(sz == s1);
     134        LOLUNIT_ASSERT(!(s2 == sz));
     135        LOLUNIT_ASSERT(!(sz == s2));
     136    }
     137
     138        LOLUNIT_TEST(StringCharsDifferent)
     139    {
     140                char const* sz = "abc";
     141        String s1("ab");
     142        String s2("abc");
     143
     144        LOLUNIT_ASSERT(s1 != sz);
     145        LOLUNIT_ASSERT(sz != s1);
     146        LOLUNIT_ASSERT(!(s2 != sz));
     147        LOLUNIT_ASSERT(!(sz != s2));
     148    }
     149
    125150
    126151    LOLUNIT_TEST(StringPrintf)
Note: See TracChangeset for help on using the changeset viewer.