1. 4
  1. 4

    I think the paper draws the wrong conclusions. There are far too many reserved identifiers. In what world should identifiers like token, stride, stream, ERROR_SUCCESS, or member be reserved? Rather than add additional warnings, instead the C standard should relinquish its reservations on such common identifiers.

    1. 2

      The paper seems to agree with you, which is why it proposes to remove those words from the reserved identifiers list and recategorize them as potentially reserved in the future.

      I think it makes good sense. Realistically, the C language probably is not going to reserve token ever, but they want the ability to introduce identifiers like tofloat and tofastint without making code-breaking changes.

    2. 1

      I expect it has been proposed before, but to me it seems there might be a solution that makes all parties (reasonably) happy.

      Unreserve all unnecessary identifiers. If a future standard wishes to add tofloat to the standard library, then they do it. If a user wants to use this C2x feature, then they #define _C2x before any includes or compile with -std=c2x.

      1. 3

        This is essentially equivalent to Perl’s use v5 design (or Rust’s edition design, for a recent imitation). I agree there is a lot of wisdom in it.