The object wclog controls output to a stream buffer associated with the object stderr declared in <cstdio>. The difference between wclog and wcerr is that wclog is buffered, but wcerr isn't. Therefore, commands like wclog << L"ERROR !!"; and fprintf(stderr,"ERROR !!"); are not synchronized. wclog uses the locale codecvt facet to convert the wide characters it receives to the tiny characters it outputs to stderr.