I don't have any documentation in front of me right now,
but isn't std::istream a common base class ?

Code:
#include <string>
#include <sstream>
#include <iostream>
#include <fstream>

using namespace std;

void Parse(std::istream & in)
{
    string str;
    getline(in,str);
    std::cout << str << "\n";
}

int main()
{
    ifstream in("somefile");
    Parse(in);

    istringstream ss("this is a test");
    Parse(ss);

    return 0;
}