bind为什么不能用ostream &作参数?

我想用bind生成用于输出字符串的可调用对象,print函数定义如下:
ostream& print (const string&s,ostream& os)
{ return os<<s<<" ";}
然后用ostream &os=cout;得到输出流的引用,将这个引用作为bind参数:

for_each(v.begin(),v.end(),bind(print, _1, os));
但不成功,只能 ref(cout)得到的引用才能作为bind参数,这是为什么

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^