Please enable JavaScript to view this site.

winIDEA Help

Version: 9.21.246

Qualified names

Different levels of qualification are recognized, therefore ambiguity can arise and symbol evaluation can return several hits.



Fully qualified name is constructed:





Fully qualified name would look like this:


for a C++ function or


for a C++ function static variable


Generated names in winIDEA are not available, but the format is recognized by the evaluator.


Almost all combinations are possible (and optional)

File Scope

Func Scope


Signature [f]










(int I, int J)




(int I, int J) const







Programming languages such as C and C++ allow collisions between symbol names. This means that multiple symbols use the same name, but are in different scopes. C allows collisions of file and function static objects, whereas C++ allows additional collisions on multiple levels (namespaces, classes, function overloads). To avoid ambiguity when multiple symbols use the same name, but are in different scopes, qualified names should be used. When winIDEA displays symbols it could happen that several different symbols with the same name are shown.


To avoid confusion winIDEA offers two levels of symbol qualification:

Reasonably-Qualified name

Unique-enough name



Reasonably-Qualified name

This is a name which removes redundant information from fully qualified name. If there is only one download file with symbol info, ,,<downloadfile> is not used (otherwise on all symbols even if there are no collisions). “<filename>#” is only used on static file symbols which cause collisions. In winIDEA selected by: "C/C++, function static".


This is the preferred name when winIDEA output is processed by scripts. By default it contains:

For a function:  the filename (if the symbol is file static), namespace, naked name, function signature;

For a variable:  the filename (if the symbol is file static), naked name;

For a function static variable: qualified function name, naked name;


If the application only has one download file, the download file will not be added. If there are multiple download files, then the download file will be listed for all symbols (even if there are no collisions).







Examples of such qualified names:


for a file static function


for a function static variable



Examples of qualified names when multiple download files are present:


for a global variable



Unique-enough name

This is a name which is qualified to a point where it becomes unique. It allows a simplified/shortened display for most symbols which are usually unique by itself. It always contains <namespace><nakedname>. If it is a function static data object, it will contain <funcname>##, where <funcname> is also unique-enough qualified. In winIDEA selected by: "Unique (avoid collisions)".


Afterwards attempts to uniqueness are performed in this order:







Minimally qualified name will look like this:


for a C function


for a C++ function


for a function static variable



If the source code is changed, e.g. a function is added, which collides with an existing name, winIDEA will automatically qualify the name to make them distinct. This can cause problems when scripts rely on the original name (the way it was originally qualified).


Copyright © 2024 TASKING Germany GmbH