I have the following code
int main()
{
cout << "Please enter your name..." << endl;
cin >> name;
cout << "Data type = " << typeid(name).name() << endl;
cin.get();
return 0;
}
According to the various textbooks and pieces of documentation I've read about the typeid operator, I should expect to read
"Data type = string"
as the output. Instead, I get the following
class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >
Does anyone have any idea where I'm going wrong? FWIW, I'm using Visual Studio 2010 Professional.
Nothing is wrong.
Those text books, first of all, should have told you the result of name()
is implementation-defined, and could very well be ""
. Secondly, that type is std::string
. The std::string
type is just a typedef of std::basic_string
with char
and friends.