
No, it can't compile. It will only compile if ADL pickus up the << from boost::fusion, but it can't do that because pair is in namespace std. Could you point me to the docs where it says it should? It's probably a doc bug.
From [1]:
"The I/O operators: << and >> work generically on all Fusion sequences. The global operator<< has been overloaded for generic output streams such that Sequence(s) are output by recursively calling operator<< for each element. Analogously, the global operator>> has been overloaded to extract Sequence(s) from generic input streams by recursively calling operator>> for each element." Notice it says the **global** operators << and >> are overloaded. Regards, Nate. [1] http://www.boost.org/doc/libs/1_47_0/libs/fusion/doc/html/fusion/sequence/op...