#include <iostream>
#include <sstream>
#include <string>
template <typename T>
bool toNumber(const std::string &str, T& num)
{
std::istringstream ss(str);
return static_cast<bool>(ss >> num);
// or:
// return !!(ss >> num);
}
int main()
{
int x, y;
if (toNumber("90", x))
std::cout << x << std::endl;
else
std::cout << "Not a number" << std::endl;
if (toNumber("New York", y))
std::cout << y << std::endl;
else
std::cout << "Not a number" << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpib29sIHRvTnVtYmVyKGNvbnN0IHN0ZDo6c3RyaW5nICZzdHIsIFQmIG51bSkKewogICAgc3RkOjppc3RyaW5nc3RyZWFtIHNzKHN0cik7CiAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Ym9vbD4oc3MgPj4gbnVtKTsKICAgIC8vIG9yOgogICAgLy8gcmV0dXJuICEhKHNzID4+IG51bSk7Cn0KCmludCBtYWluKCkKewoJaW50IHgsIHk7CgoJaWYgKHRvTnVtYmVyKCI5MCIsIHgpKQoJCXN0ZDo6Y291dCA8PCB4IDw8IHN0ZDo6ZW5kbDsKCWVsc2UKCQlzdGQ6OmNvdXQgPDwgIk5vdCBhIG51bWJlciIgPDwgc3RkOjplbmRsOwoJCglpZiAodG9OdW1iZXIoIk5ldyBZb3JrIiwgeSkpCgkJc3RkOjpjb3V0IDw8IHkgPDwgc3RkOjplbmRsOwoJZWxzZQoJCXN0ZDo6Y291dCA8PCAiTm90IGEgbnVtYmVyIiA8PCBzdGQ6OmVuZGw7CgoJcmV0dXJuIDA7Cn0=