<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Will clang give warning or hint so that users know what's going on and what they can do?</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">Regards,</div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif">chenwj</div><div class="gmail_extra"><br><div class="gmail_quote">2017-04-11 4:22 GMT+08:00 Marshall Clow via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>As part of the work on C++17, WG21 released a series of "Technical Specifications", (TS) which added proposed new features to the standard library. These were all defined in the namespace 'std::experimental' (and namespaces inside of that).  </div><div><br></div><div>Then, much of these features were merged into the main standard, and became part of namespace 'std'.  Libc++ now has two implementations of several of these, and they are diverging (because changes were made to the ones in the main standard, but not to the ones in the TS.</div><div><br></div><div>In the long run, I would like to remove the TS versions of these features from libc++ - since there are "better" versions in the main standard now. However, since people are using these, I don't think yanking them w/o warning is the right thing to do.</div><div><br></div><div>So, I'm proposing a new policy, and a timetable: </div><div><br></div><div>One year.</div><div><br></div><div>One year after we ship a LLVM release that supports a new C++ standard, we will remove all the features that are in the 'experimental' namespace that are implemented in the new standard).</div><div><br></div><div>Applying this policy to C++17,  we get:</div><div><br></div><div>LLVM 5.0 will support C++17.</div><div><br></div><div>So, for LLVM 7.0, we will remove (at least) the following features from libc++</div><div>* std::experimental::filesystem</div><div>* std::experimental::optional</div><div>* std::experimental::any</div><div>* std::experimental::string_view</div><div>* the searchers (std::experimental::boyer_<wbr>moore, etc)</div><div>* std::experimental::random_<wbr>shuffle</div><div><br></div><div>and probably other things...</div><div><br></div><div>Comments?<span class="HOEnZb"><font color="#888888"><br></font></span></div><span class="HOEnZb"><font color="#888888"><div><br></div><div>-- Marshall</div><div><br></div></font></span></div>
<br>______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><br>--<br>Wei-Ren Chen (陳韋任)<br>Homepage: <a href="https://people.cs.nctu.edu.tw/~chenwj" target="_blank">https://people.cs.nctu.edu.tw/~chenwj</a></div>
</div></div>