<div dir="ltr"><div>char buffer[100];</div>And it also allows LIT(buffer) to compile, whereas the UDL doesn't.</div><br><div class="gmail_quote"><div dir="ltr">On Tue, Nov 29, 2016 at 9:54 AM Mehdi Amini <<a href="mailto:mehdi.amini@apple.com">mehdi.amini@apple.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br class="gmail_msg">
> On Nov 29, 2016, at 9:52 AM, Malcolm Parsons <<a href="mailto:malcolm.parsons@gmail.com" class="gmail_msg" target="_blank">malcolm.parsons@gmail.com</a>> wrote:<br class="gmail_msg">
><br class="gmail_msg">
> On 29 November 2016 at 17:38, Zachary Turner <<a href="mailto:zturner@google.com" class="gmail_msg" target="_blank">zturner@google.com</a>> wrote:<br class="gmail_msg">
>> I see, but I looked over your proposed implementation from earlier in the<br class="gmail_msg">
>> thread, and if I'm not mistaken I see this:<br class="gmail_msg">
><br class="gmail_msg">
> That's a different suggestion.<br class="gmail_msg">
><br class="gmail_msg">
>> That said, what did you think about my other proposal of the complicated UDL<br class="gmail_msg">
>> with macro?<br class="gmail_msg">
>><br class="gmail_msg">
>> #define LIT(x) x_string_ref_literal<br class="gmail_msg">
>> constexpr StringRef Strings[] = {LIT("a"), LIT("b"), LIT("c")};<br class="gmail_msg">
><br class="gmail_msg">
> Why bother with the UDL?<br class="gmail_msg">
> #define LIT(x) StringRef((x), sizeof(x)-1)<br class="gmail_msg">
><br class="gmail_msg">
<br class="gmail_msg">
There is subtlety though, it changes the result for: LIT(“hello\0world”).<br class="gmail_msg">
<br class="gmail_msg">
—<br class="gmail_msg">
Mehdi<br class="gmail_msg">
<br class="gmail_msg">
</blockquote></div>