C++::utf-8なファイルの読み込み

なんかBoost使わなきゃならないとかいろいろあったのだけど、結局windows限定ならばfopen_sを使えばいいという結論に。

FILE *f;
errno_t err = fopen_s(&f, "UTF8file.txt", "rt,ccs=UTF-8") ;
if  (err != 0) return false;

wchar_t buf[BUF_SZ];
wstring str = L"";
while(!feof(f)){
    fgetws(buf, BUF_SZ, f);
    str += buf;
}

fopenってあんまり使ったことないんだけどコレであってるのかな・・・。