Istream_iterator support in CINT is broken?

Hi,

To parse a text file, I am using std::istream_iterator<std::string> begin(ss), end;

This runs properly with root -b -q -x plotting/makeSpline.cc+ but utterly fails with root -b -q -x plotting/makeSpline.cc telling me that Error: Too few template arguments plotting/makeSpline.cc:35: Error: Too few template arguments plotting/makeSpline.cc:35: Error: link requested for unknown class istream_iterator<string> /Users/adavid/workspace/cmshcg/moriond2013/scripts/AutoDict_istream_iterator_string_.cxx:6: Error: unknown class istream_iterator<string> in "#pragma link C++ class istream_iterator<string>::*"! Egnoring it. Warning: Error occurred during reading source files Warning: Error occurred during dictionary source generation !!!Removing /Users/adavid/workspace/cmshcg/moriond2013/scripts/AutoDict_istream_iterator_string__cxx_ACLiC_dict.cxx /Users/adavid/workspace/cmshcg/moriond2013/scripts/AutoDict_istream_iterator_string__cxx_ACLiC_dict.h !!! Error: /Users/adavid/CMSSW/osx108_amd64_gcc472/lcg/root/5.34.03-cms2/bin/rootcint: error loading headers... Error in <ACLiC>: Dictionary generation failed! Error: template argument for Distance missing plotting/makeSpline.cc:379: *** Interpreter error recovered ***

This is using ROOT 5.34/03. I looked it up and it seems that ROOT/CINT knows about istream_iterator: http://root.cern.ch/gitweb?p=cint.git;a=blob_plain;f=stl/_iterator.h;hb=HEAD

Based on the spec in the include file above:

template <class T, class Distance> // Distance == ptrdiff_t class istream_iterator : public input_iterator<T, Distance>
I tried to give it a go specifying Distance as std::istream_iterator<std::string, ptrdiff_t > begin(ss), end; and it fails also miserably: Error: link requested for unknown class istream_iterator<string,long> /Users/adavid/workspace/cmshcg/moriond2013/scripts/AutoDict_istream_iterator_string_long_.cxx:6: Error: unknown class istream_iterator<string,long> in "#pragma link C++ class istream_iterator<string,long>::*"! Egnoring it. Warning: Error occurred during reading source files Warning: Error occurred during dictionary source generation !!!Removing /Users/adavid/workspace/cmshcg/moriond2013/scripts/AutoDict_istream_iterator_string_long__cxx_ACLiC_dict.cxx /Users/adavid/workspace/cmshcg/moriond2013/scripts/AutoDict_istream_iterator_string_long__cxx_ACLiC_dict.h !!! Error: /Users/adavid/CMSSW/osx108_amd64_gcc472/lcg/root/5.34.03-cms2/bin/rootcint: error loading headers... Error in <ACLiC>: Dictionary generation failed! In file included from /Users/adavid/workspace/cmshcg/moriond2013/scripts/AutoDict_input_iterator_string_long__cxx_ACLiC_dict.cxx:17:0: /Users/adavid/workspace/cmshcg/moriond2013/scripts/AutoDict_input_iterator_string_long__cxx_ACLiC_dict.h:49:9: error: 'input_iterator' does not name a type [...] besides not even compiling in compiled mode.

Finally, I tried the full-fledged spec from http://www.cplusplus.com/reference/string/char_traits/:std::istream_iterator<std::string, char, char_traits<char>, ptrdiff_t > begin(ss), end; which compiles and runs fine but in interpreted mode crashes miserably again: [code]Error: Too many template arguments plotting/makeSpline.cc:37:
Error: Too many template arguments plotting/makeSpline.cc:37:
Error: Too many template arguments plotting/makeSpline.cc:37:
Error: Too many template arguments plotting/makeSpline.cc:37:
In file included from /var/tmp//rootcint_QGPshO.h:3:0,
from /var/tmp/tmp.0.GkurjU_cint.cxx:1:
/Users/adavid/workspace/cmshcg/moriond2013/scripts/AutoDict_istream_iterator_string_char_char_traits_char__ptrdiff_t_.cxx:3:10: error: empty filename in #include
Error: external preprocessing failed. :0:
!!!Removing /Users/adavid/workspace/cmshcg/moriond2013/scripts/AutoDict_istream_iterator_string_char_char_traits_char__ptrdiff_t__cxx_ACLiC_dict.cxx /Users/adavid/workspace/cmshcg/moriond2013/scripts/AutoDict_istream_iterator_string_char_char_traits_char__ptrdiff_t__cxx_ACLiC_dict.h !!!
Error: /Users/adavid/CMSSW/osx108_amd64_gcc472/lcg/root/5.34.03-cms2/bin/rootcint: error loading headers…
Error in : Dictionary generation failed!
AutoDict_istream_iterator_string_char_char_traits_char__ptrdiff_t_.cxx:3:10: error: empty filename in #include

*** Break *** segmentation violation
Root > Function makeSpline() busy flag cleared[/code]

Perhaps this was already beaten to death, but how can CINT work along with this istream_iterator?