#include <iosfwd>
#include <string>
template <class C, class Traits = std::char_trais<C> >
void foo(std::basic_istream<C, Traits>& istr, std::basic_ostream<C, Traits>& ostr)
{
std::basic_string<C, Traits> str;
istr >> str;
ostr << str.size();
}
こういうことでしょうか?