std::ostream_iterator
GCC の stdc++ の ostream_iterator には value_type が定義されてない*1。継承元の iterator には void が渡っているので value_type を参照すると void になる。なので
templatevoid func(Iter iter) { std::iterator_traits ::value_type hoge; ... }
なコードに GCC の ostream_iterator を渡すとコンパイルエラーになる。
Microsoft Platform SDK for Windows Server 2003 R2 には value_type が定義されている*2。
規格でどうなってるかは調べてない。