Changed iterators to use auto, many of which using range-based loops

What about

    auto cond = [](const TMemChecks::value_type& val) {
        if (val.bRange) {
            return (address >= val.StartAddress && address <= val.EndAddress);
        } else {
            return (val.StartAddress == address);
        }
    };
    auto it = std::find_if(m_MemChecks.begin(), m_MemChecks.end(), cond);
    if (it != m_MemChecks.end())
        return &(*it);

?