I said C++ was diff, but how about:
using namespace std;
typedef vector<unordered_map<string, pair<string, string>> foo_bar_xref;
foo_bar_xref foo( vector<vector<int>> x, unordered_map<string, string> y);
not sprinkling std:: everywhere helps with readability, but so does defining a couple types used frequently, especially if they are particularly verbose. And of course the parser doesn't really have a problem with this, so your editor should be able to find it with its 'goto declaration' function. I don't feel pity for people who chose to use editors/IDEs that make this difficult.