C++ — язык со статической типизацией, и если x объявлено как string, то он всегда string. А если как int, то он никогда не string. Поэтому функция is_string в C++ просто не имеет смысла.
Правда, существуют островки динамической типизации наподобие VARIANT из OLE — это уже смотрите по месту (
msdn.microsoft.com/en-us/library/cc237865.aspx) и, скорее всего, это не ваш вопрос.
Да, вы хотели проверять корректность ввода. Например, для проверки, будет ли строка числом, можно использовать
www.cplusplus.com/reference/cstdlib/strtod (не забудьте потом проверить endptr!)