2023-05-03 11:06:20 +02:00
== Why is this an issue?
2021-04-26 17:29:13 +02:00
The {cpp} standards define some identifiers as having special meaning in specific contexts. These are:
* ``++final++`` and ``++override++`` since {cpp}11
* ``++module++`` and ``++import++`` since {cpp}20
2023-10-02 15:29:01 +02:00
While it is technically possible to use them as normal identifiers, it's clearer for the reader of the code to consider them as if they were keywords and only use them with their special meaning.
2020-06-30 12:47:33 +02:00
2023-05-03 11:06:20 +02:00
=== Noncompliant code example
2020-06-30 12:47:33 +02:00
2022-02-04 17:28:24 +01:00
[source,cpp]
2020-06-30 12:47:33 +02:00
----
2021-04-26 17:29:13 +02:00
void module(int final); // Noncompliant
2020-06-30 12:47:33 +02:00
----
2023-05-03 11:06:20 +02:00
=== Compliant solution
2020-06-30 12:47:33 +02:00
2022-02-04 17:28:24 +01:00
[source,cpp]
2020-06-30 12:47:33 +02:00
----
void precept(int finalValue); // Compliant
----
2021-06-02 20:44:38 +02:00
2023-10-02 15:29:01 +02:00
== Resources
* {cpp} reference - https://en.cppreference.com/w/cpp/language/final[final specifier]
* {cpp} reference - https://en.cppreference.com/w/cpp/language/override[override specifier]
2023-12-22 13:58:58 +01:00
* {cpp} reference - https://en.cppreference.com/w/cpp/keyword/module[{cpp} keyword: module]
* {cpp} reference - https://en.cppreference.com/w/cpp/keyword/import[{cpp} keyword: import]
2023-10-02 15:29:01 +02:00
2021-06-03 09:05:38 +02:00
ifdef::env-github,rspecator-view[]
2021-09-20 15:38:42 +02:00
'''
== Implementation Specification
(visible only on this page)
2023-05-25 14:18:12 +02:00
=== Message
Replace XXX with another name
2021-09-20 15:38:42 +02:00
2021-06-08 15:52:13 +02:00
'''
2021-06-02 20:44:38 +02:00
== Comments And Links
(visible only on this page)
include::../comments-and-links.adoc[]
2023-06-22 10:38:01 +02:00
2021-06-03 09:05:38 +02:00
endif::env-github,rspecator-view[]