Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement is_constant_evaluated(), more feature-test macros, and LWG issues #353

Merged
merged 6 commits into from
Dec 5, 2019

Conversation

StephanTLavavej
Copy link
Member

Description

  • Fix P0595R2 is_constant_evaluated() #156: WG21-P0595 is_constant_evaluated()
    • This is enabled for Clang 9 and VS 2019 16.5 Preview 2 (the first preview with _MSC_VER set to 1925) because it depends on __builtin_is_constant_evaluated. Thanks to Jennifer Yao who implemented this in C1XX (the MSVC compiler front-end).
    • Currently, we need additional preprocessor logic to disable this for the Microsoft-internal "checked-in toolset"; that logic looks strange because the checked-in toolset's version is currently 19.25.28318.97 while a freshly-built compiler is (for example) 19.25.26504.99.
  • Fix P1902R1 Missing Feature-Test Macros 2017-2019 #339: WG21-P1902 Missing Feature-Test Macros 2017-2019
    • For unimplemented features affected by this paper, I've updated all of their GitHub issues.
    • For implemented features affected by this paper, I'm adding feature-test macros here. All of those features were directly controlled by _HAS_CXX20 and are gaining new macros (instead of having existing macros increased).
    • Note that __cpp_lib_ssize is slightly special, as that paper also patched span. I believe that we should simply define the feature-test macro now, given its name.
  • Fix LWG-3199 istream >> bitset<0> fails #70: LWG-3199 istream >> bitset<0> fails
  • Fix LWG-3257 Missing feature testing macro update from WG21-P0858 #335: LWG-3257 Missing feature testing macro update from WG21-P0858
  • Fix LWG-3266 to_chars(bool) should be deleted #332: LWG-3266 to_chars(bool) should be deleted
  • Reorder and rewrap yvals_core.h comments.

Checklist

Be sure you've read README.md and understand the scope of this repo.

If you're unsure about a box, leave it unchecked. A maintainer will help you.

  • Identifiers in product code changes are properly _Ugly as per
    https://eel.is/c++draft/lex.name#3.1 or there are no product code changes.
  • The STL builds successfully and all tests have passed (must be manually
    verified by an STL maintainer before automated testing is enabled on GitHub,
    leave this unchecked for initial submission).
  • These changes introduce no known ABI breaks (adding members, renaming
    members, adding virtual functions, changing whether a type is an aggregate
    or trivially copyable, etc.).
  • These changes were written from scratch using only this repository,
    the C++ Working Draft (including any cited standards), other WG21 papers
    (excluding reference implementations outside of proposed standard wording),
    and LWG issues as reference material. If they were derived from a project
    that's already listed in NOTICE.txt, that's fine, but please mention it.
    If they were derived from any other project (including Boost and libc++,
    which are not yet listed in NOTICE.txt), you must mention it here,
    so we can determine whether the license is compatible and what else needs
    to be done.

@StephanTLavavej StephanTLavavej merged commit 19067f6 into microsoft:master Dec 5, 2019
@StephanTLavavej StephanTLavavej deleted the features_issues branch December 5, 2019 04:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants