[llvm-dev] RFC: Constructing StringRefs at compile time

Zachary Turner via llvm-dev llvm-dev at lists.llvm.org
Tue Nov 29 09:55:02 PST 2016


char buffer[100];
And it also allows LIT(buffer) to compile, whereas the UDL doesn't.

On Tue, Nov 29, 2016 at 9:54 AM Mehdi Amini <mehdi.amini at apple.com> wrote:

>
> > On Nov 29, 2016, at 9:52 AM, Malcolm Parsons <malcolm.parsons at gmail.com>
> wrote:
> >
> > On 29 November 2016 at 17:38, Zachary Turner <zturner at google.com> wrote:
> >> I see, but I looked over your proposed implementation from earlier in
> the
> >> thread, and if I'm not mistaken I see this:
> >
> > That's a different suggestion.
> >
> >> That said, what did you think about my other proposal of the
> complicated UDL
> >> with macro?
> >>
> >> #define LIT(x) x_string_ref_literal
> >> constexpr StringRef Strings[] = {LIT("a"), LIT("b"), LIT("c")};
> >
> > Why bother with the UDL?
> > #define LIT(x) StringRef((x), sizeof(x)-1)
> >
>
> There is subtlety though, it changes the result for: LIT(“hello\0world”).
>
>> Mehdi
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161129/5a923756/attachment.html>


More information about the llvm-dev mailing list