You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: "Describes the Microsoft C/C++ code analysis warning C6389, its causes, and how to address it."
4
+
ms.date: 06/09/2021
5
+
f1_keywords: ["C6389"]
6
+
helpviewer_keywords: ["C6389"]
7
+
---
8
+
9
+
# C6389: MARK_INTERNAL_OR_MISSING_COMMON_DECL
10
+
11
+
This check intended to help with reducing the visibility of certain symbols and modularize the code. In multi-file C++ projects each declaration should be either local to a C++ file (part of the anonymous namespace) or declared in a common header file that is included by multiple C++ files.
12
+
13
+
When this check flags a declaration, either it should be moved to an anonymous namespace or a forward declaration should be moved to a header file depending on the scope of the symbol.
14
+
15
+
This is an experimental rule that needs to be enabled in a ruleset file explicitly to work. More information about rulesets can be found [here](https://docs.microsoft.com/en-us/visualstudio/code-quality/using-rule-sets-to-group-code-analysis-rules).
16
+
17
+
## Example
18
+
```cpp
19
+
// A.h
20
+
structX;
21
+
22
+
// A.cpp
23
+
24
+
// Not flagged, declared in a header file.
25
+
structX { int x; };
26
+
27
+
struct Y { double y; }; // warning: Move 'Y' to anonymous namespace or put a forward declaration in a common header included in this file.
28
+
29
+
void f(); // warning: Move 'Y' to anonymous namespace or put a forward declaration in a common header included in this file.
0 commit comments