The syntax form for many features includes optional components that are only valid in newer language/library versions, but these are not explicitly marked. For example, in the syntax of function definition the syntax element attr is only valid since C++11, and contract-specs is introduced in C++26.
In cppdoc, readers can select a specific C++ revision. The intuitive expectation is that features not available in the selected revision should be hidden. To achieve this during migration of docs for function, I have “divided” the syntax description into multiple revision-specific blocks.
However, this approach becomes cumbersome and visually complex, especially for intricate syntax, as shown in the examples below.
How should we deal with that?