#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;
}