<div dir="ltr"><div class="gmail_quote"><div>I'm generally favorable on the core idea of having a type-safe and friendly format-string-like formatting utility. Somewhat minor comments below:</div><div dir="ltr"><br></div><div dir="ltr">On Tue, Oct 11, 2016 at 6:22 PM Zachary Turner via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg"><div class="gmail_msg">The high level design of my library is borrowed heavily from C#.</div></div></blockquote><div><br></div><div>My only big hesitation here is that the substitution specifier seems heavily influenced by C#. I'd prefer to model this after a format string syntax folks are fairly familiar with. IMO, Python's is probably the best bet here and has had a lot of hammering on it over the years. So I'd suggest that the pattern syntax be mapped to be as similar to Python's as possible or at least built on top of it.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg"><div class="gmail_msg">1. os << format_string("Test");   // writes "test"<br></div><div class="gmail_msg">2. os << format_string("{0}", 7);  // writes "7"</div></div></blockquote><div><br></div><div>The "<< format_string(..." is ... really verbose for me. It also makes me strongly feel like this produces a string rather than a streamable entity.</div><div><br></div><div>I'm not a huge fan of streaming, but if we want to go this route, I'd very much like to keep the syntax short and sweet. "format" is pretty great for that. If this is going to fully subsume its use cases, can we eventually get that to be the name?</div><div><br></div><div>(While I don't like streaming, I'm not trying to fight that battle here...)</div><div><br></div><div>Also, you should probably look at what is quickly becoming a popular C++ library in this space: <a href="https://github.com/fmtlib/fmt">https://github.com/fmtlib/fmt</a></div></div></div>