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

C23 feature support checklist #430

Closed
45 tasks done
Vexu opened this issue Nov 21, 2022 · 3 comments · Fixed by #557
Closed
45 tasks done

C23 feature support checklist #430

Vexu opened this issue Nov 21, 2022 · 3 comments · Fixed by #557
Labels
enhancement New feature or request
Milestone

Comments

@Vexu
Copy link
Owner

Vexu commented Nov 21, 2022

Based on https://en.cppreference.com/w/c/23

  • _Static_asert with no message
  • [[nodiscard]]
  • [[maybe_unused]]
  • [[deprecated]]
  • Attributes
    - [ ] IEEE 754 decimal floating-point types
  • [[fallthrough]]
  • u8 character constants
  • Removal of function definitions without prototype
  • [[nodiscard]] with message
  • Unnamed parameters in function definitions
  • Labels before declarations and end of blocks
  • Binary integer constants
  • __has_c_attribute in preprocessor conditionals
  • __has_c_attribute(vendor::attribute)
  • Allow duplicate attributes
    - [ ] IEEE 754 interchange and extended types
  • Digit separators
  • #elifdef and #elifndef
  • Type change of u8 string literals
  • [[maybe_unused]] for labels
  • #warning
  • Bit-precise integer types (_BitInt)
  • [[noreturn]]
  • Suffixes for bit-precise integer constants
  • __has_include in preprocessor conditionals
  • Removal of function declarations without prototype
  • Empty initializers
  • typeof ...
  • ... and typeof_unqual
  • New spelling of keywords
  • Predefined true and false
  • [[unsequenced]]
  • [[reproducible]]
  • Relax requirements for variadic parameter list
  • Type inference in object definitions (auto)
  • constexpr objects
  • nullptr
  • #embed
  • #embed parameters limit, suffix, prefix, if_empty
  • __has_embed
  • Storage-class specifiers for compound literals
  • __VA_OPT__
  • Identifier Syntax using Unicode Standard Annex 31
  • Check identifier NFC normalized
  • Type change of u8 string literals
  • u8 character constants (already implemented, should be an error for older versions)
@Vexu Vexu added the enhancement New feature or request label Nov 21, 2022
@ehaas
Copy link
Collaborator

ehaas commented Nov 21, 2022

@Vexu
Copy link
Owner Author

Vexu commented Nov 7, 2023

@ehaas Do you want to handle the Unicode identifier change?

@ehaas
Copy link
Collaborator

ehaas commented Nov 8, 2023

Sure. The list of acceptable start/continuation characters should be straightforward. I've never done anything with unicode normalization so I don't know how much work that will be, but I think it will fit nicely with the string interner and there won't be too much incidental complexity around adding it.

@Vexu Vexu added this to the 0.1.0 milestone Nov 8, 2023
@Vexu Vexu closed this as completed in #557 Nov 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants