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.