... and with C++0x
Are you sure?

Isn't that equivalent to this?

Code:
#include <string>
#include <numeric>

int Function(int count, char value)
{
    return value ? 0 : ++count;
}

int main()
{
    char data[] = {0, 1, 2, 3, 0, 0, 4 ,5 ,0, 0, 0, 6, 7};

    std::string dataStream(data, data + 13);

    int largest = std::accumulate(dataStream.begin(), dataStream.end(), int(0), Function);
}
If so, it doesn't work!