<div dir="ltr">ICU, as a reference, only allows customizing the database at build time, not at runtime. They do call out custom properties for the PUA, though.<br><br><a href="http://userguide.icu-project.org/strings/properties#TOC-Customization">http://userguide.icu-project.org/strings/properties#TOC-Customization</a> <br> <br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Aug 29, 2019 at 5:34 PM Corentin Jabot &lt;<a href="mailto:corentinjabot@gmail.com">corentinjabot@gmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Unicode advise not doing that at all <a href="http://www.unicode.org/faq/private_use.html#pua10" target="_blank">http://www.unicode.org/faq/private_use.html#pua10</a><div><br></div><div>And the properties are immutable across the universe for a given version of Unicode. Algorithms etc depend on that</div><div>P1628 supports versioning but i guess that might not last<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, 29 Aug 2019 at 13:05, Lyberta &lt;<a href="mailto:lyberta@lyberta.net" target="_blank">lyberta@lyberta.net</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I wanted to tinker with Private Use Area code points and I thought what<br>
would be the standard way to do that. And it is obvious that we need a<br>
UCD class and use it to hold the user-defined properties of Private Use<br>
Area code points.<br>
<br>
This is completely opposite of P1628.<br>
<br>
We define a new class std::unicode::character_database (established<br>
name, although I&#39;d prefer calling it std::unicode::code_point_database)<br>
and similarly to std::source_location it has static function default()<br>
that will return the reference to const default UCD. Obviously, the<br>
entire class should be constexpr.<br>
<br>
Now, my initial idea was to make only Private Use Area mutable while the<br>
rest is const but then it occurred to me that it will deny some nice<br>
possibilities such as 3rd party libraries shipping older and newer<br>
versions of UCD that is shipped with the standard library.<br>
<br>
Essentially, I think the entire database should be mutable.<br>
std::unicode::character_database should be a value type but I guess we<br>
may word it so it is possible to implement mutations from default as a<br>
separate internal state while the rest of the database simply links to<br>
default one, like copy-on-write.<br>
<br>
I don&#39;t have the API or the wording yet. This is just thoughts at this<br>
point but it seems like P1628 is not the way to go at all.<br>
<br>
_______________________________________________<br>
SG16 Unicode mailing list<br>
<a href="mailto:Unicode@isocpp.open-std.org" target="_blank">Unicode@isocpp.open-std.org</a><br>
<a href="http://www.open-std.org/mailman/listinfo/unicode" rel="noreferrer" target="_blank">http://www.open-std.org/mailman/listinfo/unicode</a><br>
</blockquote></div>
_______________________________________________<br>
SG16 Unicode mailing list<br>
<a href="mailto:Unicode@isocpp.open-std.org" target="_blank">Unicode@isocpp.open-std.org</a><br>
<a href="http://www.open-std.org/mailman/listinfo/unicode" rel="noreferrer" target="_blank">http://www.open-std.org/mailman/listinfo/unicode</a><br>
</blockquote></div>