#include <vector>
#include <string>
#include <ostream>
#include <istream>
#include <fstream>
#include <iterator>
using namespace std;

struct hoge {
string s1;
string s2;
};

template<typename T>
basic_ostream<T>& operator<<(basic_ostream<T>& out, const hoge& h)
{
return out << h.s1 << '\n' << h.s2;
}

int main()
{
vector<hoge> hoges;
hoge h;
h.s1 = "111";
h.s2 = "aaa";

ofstream out("data", ios_base::out);

copy(hoges.begin(), hoges.end(),
ostream_iterator<hoge,char>(out, '\n'));  <−エラー

return 0;
}

error C2665: 'ostream_iterator<struct hoge,char,struct std::char_traits<char> >::ostream_iterator<struct hoge,char,struct std::char_traits<char> >' : 2 のオーバーロードは 2 番目の引数を 'const char' から要
求の型に変換できません。(新しい機能 ; ヘルプを参照)

すいません。コンパオルエラーでたんですが、解決方法がわかんないです。
だってエラーが長いんだもん