C++ Logo

sg16

Advanced search

[SG16] Wide characters with multiple c-chars

From: Corentin <corentin.jabot_at_[hidden]>
Date: Thu, 2 Jul 2020 09:09:38 +0200
Hello,
As part of https://wg21.link/p2178r0,

I would like to make *wide* characters litteral with multiple c-char (ie:
L'abc') ill-formed
https://compiler-explorer.com/z/MHExrk

All compilers but MSVC emit a warning by default, some implementations pick
the first c-char, others pick the last.
There is no use (no occurrence in any of the packages in vcpkg) or usage
for this feature.

So why do this?
- Someone unfamiliar with C++ might do auto str = L'abc' instead of L"abc"
- Things that are not useful should not linger for 40 more years in the
standard; Tom and I talked too much about how to word this "feature" as
part of P2029, so it's not free.
- It's part of a wider "Bogus conversions in phase 5" should be ill-formed
rather than doing their best to compile *something*

Please note that I am not proposing to make (narrow) multi character
literals ill-formed or deprecated at this point, there are some uses, and
these uses are intended.

I would really like your opinion so we can propose that change to EWG and
make the change without taking too much of anyone's time (the process
really isn't tuned for very small changes, which is why that is part of a
larger paper)

Thanks a lot,
Corentin

Received on 2020-07-02 02:13:04