> On April 1, 2017, 12:01 a.m., Jeff Coffler wrote: > > 3rdparty/stout/include/stout/stringify.hpp > > Lines 42 (patched) > > <https://reviews.apache.org/r/58125/diff/1/?file=1682876#file1682876line42> > > > > We've learned, from other projects, that converting from string to/from > > wstring to/from utf8string can be VERY expensive operations, particularly > > when unicode is allowed. Certain unicode operations can be extraordinarily > > slow. > > > > Due to this, we learned that we're far better off just storing things > > in a CONSISTENT format (generally wstring, since that's fast for length > > operations and such) and then, if we need to convert for final > > transmission, convert once at the very end. > > > > How heavily will this function be used? > > > > And, of course, it's in stout, but if stout was better desogmed, it > > would be nicer to have a separate implementation rather than inlining code > > in a bunch of places.
This is an additional function template specialization. No conversions are being explicitly performed here. That said, there is no way that Mesos is going to convert to `wstring` across its entire codebase. However, for Windows code, the recommended best practices are to use the Unicode versions of Windows APIs (as the non-Unicode versions are not UTF at all, they're the current "Windows code page" aka ANSI which could be almost any encoding). Since Windows returns UTF-16, we need a reliable way to convert to UTF-8 on-demand for Mesos, which this additional specialization of `stringify` provides. This needs to be inlined because it is a specialization (e.g. not a template) in a header. If it is not inlined, then it gets defined in multiple objects and linking fails. - Andrew ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/58125/#review170802 ----------------------------------------------------------- On April 1, 2017, 4:32 a.m., Andrew Schwartzmeyer wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/58125/ > ----------------------------------------------------------- > > (Updated April 1, 2017, 4:32 a.m.) > > > Review request for mesos, Jeff Coffler, John Kordich, Joseph Wu, Li Li, and > Michael Park. > > > Repository: mesos > > > Description > ------- > > Stout: Added stringify for std::wstring. > > > Diffs > ----- > > 3rdparty/stout/include/stout/stringify.hpp > e9588d8d940046791794100c53469288656a14f0 > > > Diff: https://reviews.apache.org/r/58125/diff/2/ > > > Testing > ------- > > Testing done later in chain. > > > Thanks, > > Andrew Schwartzmeyer > >