56 lines
1.3 KiB
Plaintext
Raw Permalink Normal View History

== Why is this an issue?
2021-04-28 16:49:39 +02:00
It is possible in the same statement, to declare a user-defined type (``++class++``, ``++struct++``, ``++union++`` or ``++enum++``) followed by variable declarations of this type. But mixing more than one concern in a single statement is confusing for maintainers.
This rule raises an issue when a variable is declared at the end of a user-defined type declaration statement.
=== Noncompliant code example
2021-04-28 16:49:39 +02:00
2022-02-04 17:28:24 +01:00
[source,cpp]
2021-04-28 16:49:39 +02:00
----
struct Container { int size; } container; // Noncompliant
----
=== Compliant solution
2021-04-28 16:49:39 +02:00
2022-02-04 17:28:24 +01:00
[source,cpp]
2021-04-28 16:49:39 +02:00
----
struct Container { int size; };
Container container;
----
== Resources
2021-04-28 16:49:39 +02:00
* {cpp} Core Guidelines - https://github.com/isocpp/CppCoreGuidelines/blob/e49158a/CppCoreGuidelines.md#c7-dont-define-a-class-or-enum-and-declare-a-variable-of-its-type-in-the-same-statement[C.7: Don't define a class or enum and declare a variable of its type in the same statement]
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
=== Message
Declare this variable in a separate statement.
=== Highlighting
variable name
'''
== Comments And Links
(visible only on this page)
=== on 17 Jun 2016, 16:43:47 Ann Campbell wrote:
\[~alban.auzeill] I've simplified the code samples. Please double-check me.
endif::env-github,rspecator-view[]