Skip to content

Commit

Permalink
Updated the readme to note current gcc and Clang limitations.
Browse files Browse the repository at this point in the history
  • Loading branch information
tahonermann authored Jul 21, 2019
1 parent 7779c6b commit 20cc71c
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# char8_t backward compatibility remediation

- [Introduction](#introduction)
- [Requirements](#requirements)
- [Remediation examples](#remediation-examples)
- [String literals](#string-literals)
- [Array initialization](#array-initialization)
Expand Down Expand Up @@ -53,6 +54,20 @@ using u8string = std::string;
```


# Requirements
The implementation of
[P0732R2](https://wg21.link/p0732 "Class Types in Non-Type Template Parameters")
in gcc 9.1.0 is incomplete and incorrectly rejects literal operator templates
declared with non-type template parameters of literal class type. This issue is
tracked by
[bug 88095](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88095 "class nontype template parameter UDL string literals doesn't accepts deduction placeholder"). This issue currently prevents use of the `U8`
macro when compiling for C++20. A patch is available.

[P0732R2](https://wg21.link/p0732 "Class Types in Non-Type Template Parameters")
has not yet been implemented as of Clang 8. As a result, the `U8` macro can not
currently be used in `constexpr` context with Clang when compiling for C++20.


# Remediation examples


Expand Down

0 comments on commit 20cc71c

Please sign in to comment.