[PATCH] D24686: [support] Some improvements to StringSwitch
Zachary Turner via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 3 13:30:12 PDT 2016
That is true, but it would make it impossible to have both case sensitive
and case-insensitive cases in the same switch. For example, the following
is currently possible:
StringSwitch<int>(s).Case("one").CaseLower("two");
I'm not sure how useful this would be, but I see no reason not to allow
it. One idea might be to templatize the member function itself, and give
it a default value of case sensitive. But then you still have to write:
StringSwitch<int>(s).Case<>("one").Case<false>("two");
which might be awkward. thoughts?
On Mon, Oct 3, 2016 at 1:26 PM Rui Ueyama <ruiu at google.com> wrote:
> It just comes to my mind that you could make StringSwitch case-insensitive
> instead of adding case-insensitive versions of StartsWith, Case and Cases.
> It'd probably be something like
>
> auto Ret = StringSwtich<T>(Str, /*CaseInsensitive=*/true)
> .Case("foo", bar) // "foo" is compared in the insensitive manner
> ...
>
> With this, you don't need to double the number of member functions.
>
> On Mon, Oct 3, 2016 at 1:15 PM, Zachary Turner <zturner at google.com> wrote:
>
> zturner updated this revision to Diff 73327.
> zturner added a comment.
>
> Unit tests for the case-sensitive versions were removed and submitted
> separately. The `Optional` variant of the function is removed and will be
> submitted later. This patch only contains case-insensitive versions of the
> functions with associated unit tests.
>
>
> https://reviews.llvm.org/D24686
>
> Files:
> include/llvm/ADT/StringSwitch.h
> unittests/ADT/StringSwitchTest.cpp
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161003/70529fde/attachment.html>
More information about the llvm-commits
mailing list