うーん,センスうんぬんの話が出るということはもしかして

std::map<foo *, bar *> fbmap;
foo *f;
bar *b;
while (make_foo_bar_x(&f, &b)) {
hbmap.insert(std::pair(f, b));
}

のようにしろ,ってことですか?