On Sat, 27 Nov 2004 19:25:20 -0800, Frank Astier <fastier@yahoo.com> wrote:
I am pretty sure it's because of my lack of skills with templates... Still, I don't understand why I can stream a vector if it's on its own, but not if it's stored in a boost::tuple. And it works with a std::pair! Any hint?
int main(int, char**) { vector<float> v; cout << v; // Works fine
pair<vector<float>, pair<int, int> > p; cout << p; // Works fine
tuple<vector<float> > t; cout << t; // <== WON'T COMPILE }
Thanks,
Frank
I suspect it's because you need to define the operator<< for vector in the same namespace as vector (i.e. std) for the tuples operator<< to be able to find it. It's called 'argument dependent lookup'. Stuart Dootson