#include <sstream>
#include <string>
class MyClass : public std::istringstream{
public:
using std::istringstream::operator >>;
MyClass(const char* st) : std::istringstream(st){}
void operator>>(std::string& st){st = this->str();}
};
int main()
{
MyClass my("bla tmp");
std::string tmp;
my >> tmp; // now tmp == "bla temp" and this is exactly what I wanted
//but this does not work
int kk;
my >> kk; //gives me "now match for operator>>"
}
I2luY2x1ZGUgPHNzdHJlYW0+CiAgICAjaW5jbHVkZSA8c3RyaW5nPgoKICAgIGNsYXNzIE15Q2xhc3MgOiBwdWJsaWMgc3RkOjppc3RyaW5nc3RyZWFtewogICAgcHVibGljOgogICAgICAgIHVzaW5nIHN0ZDo6aXN0cmluZ3N0cmVhbTo6b3BlcmF0b3IgPj47CiAgICAgICAgTXlDbGFzcyhjb25zdCBjaGFyKiBzdCkgOiBzdGQ6OmlzdHJpbmdzdHJlYW0oc3Qpe30KICAgICAgICB2b2lkIG9wZXJhdG9yPj4oc3RkOjpzdHJpbmcmIHN0KXtzdCA9IHRoaXMtPnN0cigpO30KICAgIH07CgogICAgaW50IG1haW4oKQogICAgewogICAgICAgIE15Q2xhc3MgbXkoImJsYSB0bXAiKTsKICAgICAgICBzdGQ6OnN0cmluZyB0bXA7CiAgICAgICAgbXkgPj4gdG1wOyAvLyBub3cgdG1wID09ICJibGEgdGVtcCIgYW5kIHRoaXMgaXMgZXhhY3RseSB3aGF0IEkgd2FudGVkCiAgICAgICAgLy9idXQgdGhpcyBkb2VzIG5vdCB3b3JrCiAgICAgICAgaW50IGtrOwogICAgICAgIG15ID4+IGtrOyAvL2dpdmVzIG1lICJub3cgbWF0Y2ggZm9yIG9wZXJhdG9yPj4iCiAgICB9Cg==