I'm curious about the technical reason for cin.getline and the global getline function being in different places.
What was the motivation for not simply defining all these function signatures for cin:
//THESE TWO EXIST
istream& cin::getline (char* s, streamsize n );
istream& cin::getline (char* s, streamsize n, char delim );
//THESE TWO COULD EXIST
istream& cin::getline (string &s);
istream& cin::getline (string &s, char delim );
Was it because other types may want to be added and they didn't want to marry the string to cin?