<div dir="ltr">Hi All,<div><div><div>CC Marshall,</div><div><br></div><div>I've had some offline discussions with Marshall about adding feature testing macros to libc++ and there was some hesitation about doing it.</div><div>Patches (with test cases) are welcome, but I don't know if we have decided on a direction yet. There is a similar bug report that can be found here: <a href="http://llvm.org/bugs/show_bug.cgi?id=18584">http://llvm.org/bugs/show_bug.cgi?id=18584</a>.</div></div></div><div><br></div><div>/Eric</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Sep 21, 2014 at 7:34 PM, David Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Sun, Sep 21, 2014 at 11:44 AM, Seth Cantrell <span dir="ltr"><<a href="mailto:seth.cantrell@gmail.com" target="_blank">seth.cantrell@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">clang implements feature testing macros for language features but I notice that libc++ does not implement the library testing macros. Is this deliberate or would patches to fix this be welcome?<br>
<br>
Attached is an initial attempt at implementing <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4030.htm" target="_blank">http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4030.htm</a> based on <a href="http://libcxx.llvm.org/cxx1y_status.html" target="_blank">http://libcxx.llvm.org/cxx1y_status.html</a>. No tests are included yet.<br>
<br>
Also, about the language feature testing, I notice that they don't take into account features being disabled via -Werror=. </blockquote><div><br></div></span><div>Which, if any, features can we disable via -Werror? I don't think we have a warning for constexpr, for example - we have a generic warning for all C++11 features (so you can build a codebase as C++11 without allowing the codebase to become C++98-incompatible), so arguably all the language features could be "not available" when built with that warning and -Werror, but that would change the behavior of your program, which would be problematic if you wanted to make sure that when you build as C++11 the project works (because then if you disabled the warning, you'd end up with different behavior - so your experimental results wouldn't be representative of the end state you were aiming for)</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">It seems like this might matter in cases such as a third party library's headers doing feature testing, but where the local build environment has disabled features for whatever reason. It seems reasonable that a header testing #if __has_extension(__cxx_constexpr__) or #ifdef __cpp_constexpr would use whatever fallback code it's got when the user disables constexpr. Feature testing does take into account features disabled with -fno- arguments.<br>
<span><font color="#888888"><br>
- Seth<br>
<br>
</font></span><br></span>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div></div>
<br>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div>