#include <iostream>
#include <vector>
#include <streambuf>
using namespace std;
// http://stackoverflow.com/questions/8815164/c-wrapping-vectorchar-with-istream
template<typename CharT, typename TraitsT = std::char_traits<CharT> >
class vectorwrapbuf : public std::basic_streambuf<CharT, TraitsT>
{
public:
vectorwrapbuf(std::vector<CharT> &vec)
{
this->setg(&vec[0], &vec[0], &vec[0] + vec.size());
}
};
int main()
{
vector<char> data(100, 1);
vectorwrapbuf<char> databuf(data);
std::istream file(&databuf);
file.exceptions(std::istream::failbit | std::istream::badbit);
file.seekg(10);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyZWFtYnVmPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy84ODE1MTY0L2Mtd3JhcHBpbmctdmVjdG9yY2hhci13aXRoLWlzdHJlYW0KdGVtcGxhdGU8dHlwZW5hbWUgQ2hhclQsIHR5cGVuYW1lIFRyYWl0c1QgPSBzdGQ6OmNoYXJfdHJhaXRzPENoYXJUPiA+CmNsYXNzIHZlY3RvcndyYXBidWYgOiBwdWJsaWMgc3RkOjpiYXNpY19zdHJlYW1idWY8Q2hhclQsIFRyYWl0c1Q+CnsKcHVibGljOgoJdmVjdG9yd3JhcGJ1ZihzdGQ6OnZlY3RvcjxDaGFyVD4gJnZlYykKCXsKCQl0aGlzLT5zZXRnKCZ2ZWNbMF0sICZ2ZWNbMF0sICZ2ZWNbMF0gKyB2ZWMuc2l6ZSgpKTsKCX0KfTsKCmludCBtYWluKCkKewoJdmVjdG9yPGNoYXI+IGRhdGEoMTAwLCAxKTsKCXZlY3RvcndyYXBidWY8Y2hhcj4gZGF0YWJ1ZihkYXRhKTsKCXN0ZDo6aXN0cmVhbSBmaWxlKCZkYXRhYnVmKTsKCWZpbGUuZXhjZXB0aW9ucyhzdGQ6OmlzdHJlYW06OmZhaWxiaXQgfCBzdGQ6OmlzdHJlYW06OmJhZGJpdCk7CglmaWxlLnNlZWtnKDEwKTsKfQo=