cplusplus / CWG

Core Working Group
23 stars 7 forks source link

Change the term implementation-specific to implementation-defined #590

Open ranaanoop opened 1 month ago

ranaanoop commented 1 month ago

Full name of submitter: Anoop Rana

Issue description:

There are varius places(7 or 8) where the standard uses the term implementation-specific. I think it should be replaced with implementation-defined so that we have a single term making the standard more consistent and also becuase implementation-specific is not formally defined but implementation-defined is.

This is an editorial issue but to be sure before making a pull request, I am confirming if they are intended to mean the same thing.

Here are some of the places where the terms are used so that it will be easier to make the pull request:

  1. Note in basic.fundamental
  2. Note in string.capacity.
  3. Note in deque.capacity
  4. Note in vector.capacity
  5. Normative wording in facet.ctype.char.members
  6. Note in re
  7. diff03
  8. diff03
frederick-vs-ja commented 1 month ago

IMO notes for shrink_to_fit functions shouldn't use "implementation-defined", as optimizations should almost always be unspecified in the standard. Perhaps same for the search function in [re.regiter.incr]. I guess it would be better to say "unspecified".

Its arguable whether "implementation-specific knowledge" is something implementation-defined. I think some of them are, while others are not.

IIUC "implementation-specific C++ 2003 code" is definitely not implementation-defined. It should be user code that relies on specific implementations.


I don't know why was the note added (by P1467R9) to [basic.fundamental]. Perhaps it should be furtherly reworded.

For the implementation-specific value in [facet.ctype.char.members], I guess it would be better to say the value is implementation-defined, which possibly needs an LWG issue. An exposition-only function encapsulating table()[v] with the fallback mechanism seems helpful.