No need of flag. You can have something like
```c++
bool BitSet::all() const
{
    for (int i = 0; i < m_size; ++i) {
        if (m_array[i] != -1)
             return false;
    }
    return true;
}
```

Applicable to all other new methods. This is called early returns which produces more optimal code.

Reference reading http://programmers.stackexchange.com/questions/18454/should-i-return-from-a-function-early-or-use-an-if-statement