Dependency Graph

Online documentation:

Dependency Matrix

Online documentation:

Visualizing Code Metrics through Treemaping

With the Online documentation, understand how Treemaping can help you see patterns in your code base, that would be hard to spot with other ways.

Abstractness versus Instability Diagram

The Abstractness versus Instability Diagram helps to detect which assemblies are potentially painful to maintain (i.e concrete and stable) and which assemblies are potentially useless (i.e abstract and instable).

Online documentation:

For beginners: Where to start

Quick Tips

Code Quality from Now!

Main
Main \ CQL Rules
Main \ CQL Rules \ Code Quality
Main \ CQL Rules \ Object Oriented Design
Main \ CQL Rules \ Design
Main \ CQL Rules \ Architecture and Layering
Main \ CQL Rules \ Dead Code
Main \ CQL Rules \ Visibility
Main \ CQL Rules \ Purity - Immutability - Side-Effects
Main \ CQL Rules \ Naming Conventions
Main \ CQL Rules \ Source Files Organization
Main \ Group of CQL Queries \ Object Oriented Design
Main \ Group of CQL Queries \ API Breaking Changes
Main \ Group of CQL Queries \ Code Diff Summary
Main \ Group of CQL Queries \ Dead Code
Main \ Metrics \ Projects Metrics
Main \ Metrics \ Namespaces Metrics
Main \ Metrics \ Types Metrics
Main \ Projects Dependencies
Main \ Namespaces Dependencies
Main \ Types Dependencies
Main \ Build Order
Main \ Analysis Log

CppDepend Report Build Summary


» Application name :
» Report build date :
» Analysis Duration :
» CppDepend version :
             New Project
07/29/2012 10:38:07
00:00:41
3.0.0.6252 (Evaluation: 14 days left)
        
[ For beginners: Where to start ]    [ Quick tips ]    [ CppDepend site ]

The present HTML report is a summary of data gathered by the analysis.
It is recommended to use the CppDepend interactive UI capabilities
to make the most of CppDepend by mastering all aspects of your code.
» Baseline for Comparison :   Not Defined. To define a Baseline for Comparison, please read this online documentation.

Diagrams      

C\C++ projects Dependency Graph      graphHelp

[ scaled ]
   [ full ]
Dependency Graph
C\C++ projects Dependency Matrix      matrixhHelp

[ scaled ]
   [ full ]
Dependency Matrix
Treemap View      treemaphHelp

[ scaled ]
   [ full ]
Treemap Metric View
Abstractness versus Instability      abstInsthHelp

[ scaled ]
   [ full ]
Abstractness vs. Instability

Application Metrics

# Lines of code : 56,055
# Projects : 2
# Namespaces : 2
# Types : 380
# Methods : 12,433
# Fields : 2,407
# Lines of comment : 35,508
# Classes : 272
# Abstract classes : 26
# structures : 52
# Enumeration : 55
# Templates : 33
Third Party Usage
 # Projects used : 2
 # Namespaces used : 2
 # Types used : 6
 # Methods used : 115
 # Fields used : 57
Percentage …
  … of comment : 38%
 … of public types : 96.88%
 … of public methods : 95.76%
 … of classes with public field(s) : 10.68%

CQL Rules summary  
 26 33 0 

This section lists all CQL Rules violated and CQL Rules or Queries that did not compile.
  • » Number of CQL Rules or Queries that did not compile : 0
  • » Number of CQL Rules violated : 33

Summary of CQL Rules violated

graphHelp    CppDepend CQL rules report too many flaws on existing code base?
Adopt the Code Quality from Now! strategy.
   

Name # Matches Elements Group
Name # Matchs Elements Group
warning   Types too big - critical
12 typesCode Quality
warning   Methods too complex - critical
46 methodsCode Quality
warning   Methods with too many parameters - critical
14 methodsCode Quality
warning   Quick summary of methods to refactor
468 methodsCode Quality
warning   Methods too big
266 methodsCode Quality
warning   Methods too complex
139 methodsCode Quality
warning   Methods potentially poorly commented
206 methodsCode Quality
warning   Methods with too many parameters
47 methodsCode Quality
warning   Methods with too many local variables
66 methodsCode Quality
warning   Methods with too many overloads
76 methodsCode Quality
warning   Types with too many methods
74 typesCode Quality
warning   Types with too many fields
6 typesCode Quality
warning   Types with poor cohesion
6 typesCode Quality
warning   Base class should not use derivatives
2 typesObject Oriented Design
warning   Class shouldn't be too deep in inheritance tree
70 typesObject Oriented Design
warning   Constructor should not call a virtual methods
8 methodsObject Oriented Design
warning   Don't assign static fields from instance methods
38 fieldsObject Oriented Design
warning   Avoid Abstract Classes with too many methods
10 typesObject Oriented Design
warning   Nested types should not be visible
40 typesDesign
warning   Projects that don't satisfy the Abstractness/Instability principle
1 projectsArchitecture and Layering
warning   Potentially dead Types
120 typesDead Code
warning   Potentially dead Methods
144 methodsDead Code
warning   Potentially dead Fields
11 fieldsDead Code
warning   Fields should be declared as private
1398 fieldsVisibility
warning   Constructors of abstract classes should be declared as protected or private
25 typesVisibility
warning   Structures should be immutable
51 typesPurity - Immutability - Side-Effects
warning   Avoid static fields with a mutable field type
219 fieldsPurity - Immutability - Side-Effects
warning   Instance fields should be prefixed with a 'm_'
10 fieldsNaming Conventions
warning   Static fields should be prefixed with a 's_'
10 fieldsNaming Conventions
warning   Types name should begin with an Upper character
9 typesNaming Conventions
warning   Avoid methods with name too long
22 methodsNaming Conventions
warning   Avoid defining multiple types in a source file
61 typesSource Files Organization
warning   Types declared in the same namespace, should have their source files stored in the same directory
1 namespacesSource Files Organization

Application Statistics

Stat # Occurences Avg StdDev Max
Stat # Occurences Avg StdDev Max
Properties on interfaces interfaces 00-1 properties on
Methods on interfaces interfaces 00-1 methods on
Arguments on methods on interfaces methods 00-1 arguments on
Public properties on classes 276 Classes 0.050.915 public properties on CppDependencyGlobalMembers
Public methods on classes 276 classes 42.8784.41826 public methods on CppDependencyGlobalMembers
Arguments on public methods on classes 11,831 methods 0.530.9613 arguments on MemberDef.MemberDef(constchar*,int,constchar*,constchar*,constchar*,constchar*,Protection,Specifier,bool,Relationship,MemberDef::MemberType,constArgumentList*,constArgumentList*)
Cyclomatic complexity on non abstract Methods 12,433 Methods 0.981.89 CC = 73 for CppDependencyGlobalMembers.scanYYlex()

Projects Metrics

If you wish to define thresholds on projects Code Metrics, consider writing some CQL Rules.
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Projects # lines of code # Types # Abstract Types # lines of comment% CommentAfferent CouplingEfferent CouplingRelational CohesionInstabilityAbstractnessDistance
Projects # lines of code # Types # Abstract Types # lines of comment% CommentAfferent CouplingEfferent CouplingRelational CohesionInstabilityAbstractnessDistance
qtools v1.0.0.0121031441298084414663.440.040.080.62
CppDependency v1.0.0.0439522401425700360353.1710.060.04

Types Metrics : Code Quality

For a particular Code Metric defined for types, values in red represent the 15% highest values.
If you wish to define thresholds on types' Code Metrics, consider writing some CQL Rule.
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Type Name Type Rank# Lines Of Code# Lines Of Comment% CommentCyclomatic ComplexityAfferent CouplingEfferent Coupling Type Namespace
Type Name Type Rank# Lines Of Code# Lines Of CommentPercentage CommentCyclomatic ComplexityAfferent CouplingEfferent Coupling Type Namespace
qtoolsGlobalMembers50.43113753231.8847915041
QString25.31174122651.084555815
QCString23.093995311.731711253
CppDependencyGlobalMembers10.5923035651422.04664871168
QCollection10.58711994.4411361
QList<type>9.61400042504
QChar6.7810131075.4357247
QGList6.4539841450.9913976
QShared5.87300460
ClassDef+CompoundType5.36-0-0380
Config5.2979419219.47994527
Translator5.015016076.19237325
QGArray4.7624828353.39824
QArray<type>4.59320036121
QDict<type>4.5160018214
Definition4.2834021839.071362427
QListIterator<type>4.2116523.8117293
QLNode4.182360330
QBaseBucket3.89400660
FileDef3.8345710418.541881941
MemberDef3.8277823623.272882233
QTextStream3.4786751237.132602217
SDict<T>3.36364656.123194
QChar+Decomposition3.31-0-040
QTextCodec3.129630175.82471116
ClassDef3.11117936223.494201951
QGDict3.0852918726.12168914
QChar+Direction2.94-0-030
QValueListNode<T>2.7800-230
TranslatorEnglish2.5449554452.36310126
QMapNodeBase2.53800650
QGListIterator2.5478564.393223
QCharRef2.464036.983576
QDataStream2.3628129250.968256
QGDict+KeyType2.1-0-040
QRegExp1.9820916544.127253
QStack<type>1.8516001832
TranslatorAdapterBase1.8211794.44693
DefinitionIntf+DefType1.8-0-080
QStringData1.776114.29722
QIODevice1.767440784.625482
QTextDecoder1.6700-591
QGVector1.6621022651.838925
QBidiState1.6201100310
QLigature1.623013.231815
QValueListIterator<T>1.614526.321151
Protection1.51-0-080
QGArray+array_data1.52250221
OutputGenerator+OutputType1.5-0-0120
QChar+Joining1.47-0-020
QChar+Category1.47-0-020
ConfigOption+OptionType1.45-0-090
QGDictIterator1.45655043.4834510
QValueList<T>1.457667.324663
LockableObj1.4411593.75730
Specifier1.4-0-070
TranslatorAdapter_1_4_61.263007105
ConfigOption1.2357913.643287
QFile1.1538045154.2713797
CodeOutputInterface1.150151001561
Store1.131547833.624325
QMapNode<K,T>1.11500441
QMapNodeBase+Color1.1-0-040
SIntDict<T>1.08294560.811922
QStrList1.0817001184
QXmlSimpleReader1.072792101426.641007129
QCacheItem1.07012100350
NamespaceDef1.06251259.06113726
QChar+AnonymousEnum1.04-0-010
Doxygen1.03041000100
Debug1.01900633
QValueListConstIterator<T>0.9713527.781142
StorageIntf0.9704100630
FileName0.97471321.672247
TranslatorAdapter_1_5_40.9623002765
QBuffer0.9214717454.215846
OutputList0.91201104.742081014
SectionInfo+SectionType0.89-0-030
BaseOutputDocInterface0.860741006246
Debug+DebugMask0.86-0-040
FileList0.85400644
MemberList+ListType0.84-0-060
QTextEncoder0.7900-542
QMapIterator<K,T>0.774759.622443
QIntDict<type>0.7616001833
UsesClassDef0.755228.57533
QXmlInputSource0.72574141.8420411
DirDef0.721996524.6275523
MemberNameInfo0.661500839
QXmlParseException0.6453487.18831
ParserInterface0.64045100846
ConfigOption+AnonymousEnum0.63-0-050
MemberDef+MemberType0.63-0-070
ListItemInfo0.6200-250
LockingPtr<T>0.62272042.551651
QVector<type>0.6224002722
Argument0.59131043.48651
BaseClassDef0.5802100333
DefinitionIntf0.5702100541
QDataStream+ByteOrder0.57-0-010
QMapConstIterator<K,T>0.56455102334
MemberInfo0.5500-333
QStringBucket0.54100322
QAsciiBucket0.54100321
QPtrBucket0.54100321
QIntBucket0.54100321
MemberName0.541500838
SDict<T>+Iterator0.5472175761
QGCache0.5219710334.336729
TextGeneratorIntf0.5109100720
DefinitionList0.51200626
QXmlAttributes0.512210081.972033
QXmlLocator0.5133391.67731
QTextStream+Encoding0.51-0-030
BaseOutputDocInterface+SectionTypes0.51-0-030
TranslatorAdapter_1_4_10.51200635
Define0.59110423
QCList0.527515.621825
FilePair0.5200541
QTextCodecFromIOD0.4816463.5365212
ClassList0.48100523
QGCache+KeyType0.47-0-020
MemberList0.472336421.5597415
QGCacheIterator0.46317971.822916
QCache<type>0.4617001914
QTextOStream0.4600-513
SectionInfo0.46700412
Entry0.461313521.0828320
NamespaceList0.45100424
BaseOutputDocInterface+ParamListTypes0.44-0-020
Store+State0.44-0-010
Store+Node0.4400-211
BaseClassList0.446440626
ConfigString+WidgetType0.43-0-020
ArgumentList0.4271263.16645
QDictIterator<type>0.429001123
QDir0.4240157358.83154220
ConfigList+WidgetType0.41-0-020
TranslatorAdapter_1_3_30.4500925
Entry+Sections0.4-0-030
OutputDocInterface0.40341001122
ParserManager0.3992170625
ObjCache+HashNode0.3900-210
ObjCache+CacheNode0.3900-210
QFileInfo0.3815128965.6871210
QMultiByteUnicodeTable0.362250420
ClassSDict0.365461020314
HighlightedItem0.36-0-030
QStrVec0.3610001213
QPtrDict<type>0.3616001813
FileNameList0.367222.22714
CPPValue+Type0.36-0-010
DefineName0.36300514
CPPValue+Anonymous0.3600-010
QStringBuffer0.35901715.894014
QTextStreamPrivate+SourceType0.35-0-010
QTextStream+AnonymousEnum0.35-0-010
QTextStreamPrivate0.35100310
IncludeInfo0.35200331
QTextStatelessDecoder0.35100513
QTextStatelessEncoder0.35100514
QWindowsLocalCodec0.352228.331314
ConfigList0.3316315.7912110
ConfigEnum0.3316315.791119
ConfigString0.3316315.791218
ConfigObsolete0.3303100613
ConfigBool0.33273101717
ConfigInt0.332839.681617
ConfigInfo0.337330715
QXmlLexicalHandler0.33021001031
QXmlErrorHandler0.3300-832
QXmlDeclHandler0.3300-831
QXmlDTDHandler0.3300-731
QXmlContentHandler0.33031001633
QXmlEntityResolver0.3300-632
DirEntry+EntryKind0.33-0-010
QStringList0.326113068.063239
QGDItList0.32200412
TranslatorAdapter_1_3_80.32200615
Relationship0.31-0-020
BodyInfo0.3100210
DefinitionImpl0.324311.111014
MemberSDict0.33125415
TranslatorAdapter_1_3_90.37001115
MemberListIterator0.300-423
TranslatorAdapter_1_3_10.3300715
QCListIt0.300-513
NamespaceSDict0.294236.6717211
TranslatorAdapter_1_30.296001015
QMap<Key,T>0.2848712.732723
QValueStack<T>0.28700721
DirEntry0.277001314
QUtf16Decoder0.2724141114
QUtf16Encoder0.271200616
CommandMap0.2700-010
QDate0.269824271.184114
QTime0.265526782.923414
Entry+MemberSpecifier0.26-0-010
ObjCache0.261215832.42913
MemberDefImpl0.26631620.2512114
SrcLangExt0.26-0-010
UsedDir0.257222.221027
QCDict0.2513838.11713
QUtf8Decoder0.252214.351213
TranslatorAdapter_1_2_180.25300715
LabelMap0.2501100011
IndexIntf0.2500-1111
FilePairDict0.255116.67615
DevNullCodeDocInterface0.24011001512
PreproData0.2400-110
OutputGenerator0.24581823.68120113
CallContext+Ctx0.2400-310
Anonymous0.2400-010
QMapPrivateBase0.2416842.334913
QFileInfoCache0.2300-110
QDateTime0.237018572.554016
QTextCodecFromIODDecoder0.231317.14815
MemberNameInfoIterator0.2100-313
ClassDefImpl0.2140816.67716
BaseClassListIterator0.2102100313
MemberNameInfoSDict0.21100513
UsesClassDict0.2102100412
FileStorage0.21200613
QXmlReader0.2031002318
QXmlSimpleReader+EntityRecognitionContext0.2-0-010
QXmlNamespaceSupport0.25211368.482818
QXmlSimpleReaderPrivate0.206100310
QXmlSimpleReaderPrivate+ExternParameterEntity0.201100511
QXmlSimpleReaderPrivate+Standalone0.2-0-010
QXmlSimpleReaderPrivate+ExternEntity0.200-511
DirList0.21150514
VariableContext+Scope0.21000816
EntryNav0.19421931.1525111
QGString0.19151106.214812
BaseInfo0.1903100212
RelatesType0.19-0-010
MethodTypes0.19-0-010
QDir+SortSpec0.19-0-010
QDirSortItem0.1900-210
QDir+FilterSpec0.19-0-010
QMapPrivate<Key,T>0.151002218.033507
QTextIStream0.1500-503
TranslatorItalian0.1550148449.1430806
MemberDict0.1500-302
TranslatorJapanese0.1536948456.7424606
TranslatorCzech0.1550653251.2531106
TranslatorGerman0.1548950350.7129706
TranslatorIndonesian0.1538449356.2126406
TranslatorFrench0.1538848855.7126206
ClassListIterator0.1500-203
ClassDict0.1500-302
TranslatorSwedish0.1538030944.8525806
TranslatorDutch0.1545436644.6329606
OutputNameList0.15300404
MemberNameIterator0.1500-203
CLanguageScanner0.1571872908
CPPValue0.159001003
QLatin1Codec0.153013.231804
DocLexerContext0.1500-300
Tokens0.15-0-000
yy_buffer_state0.1500-000
TokenInfo+ParamDir0.15-0-000
TokenInfo0.1500-000
STLInfo0.1500-000
QSimpleTextCodec0.157955.953807
OutputNameDict0.1500-302
QConstString0.1512596.15404
QtMsgType0.15-0-000
TranslatorDecoder0.1524211231.6422804
Directory0.15600805
FindBaseClassRelation_Mode0.15-0-000
PrefixIgnoreClassList0.157222.22505
MemberIndexList0.153125505
TranslatorJapaneseEn0.1551168.75902
TranslatorPersian0.1546252653.2429606
TranslatorArabic0.1539549955.8226206
yy_buffer_state0.1500-000
UsesClassDictIterator0.1502100203
TranslatorAfrikaans0.1538246654.9526006
TranslatorSerbian0.1549354852.6431306
TranslatorGreek0.1540947453.6827206
TranslatorLithuanian0.1539347654.7825906
TranslatorCatalan0.1550854651.831406
ValStack<T>0.1518001001
TextGeneratorXMLImpl0.15200703
TranslatorMacedonian0.154752391.7522600
XMLCodeGenerator0.157224253506
XmlSectionMapper0.153512.78402
yy_buffer_state0.1500-000
FileState0.1500-300
FindFileCacheElem0.1501100301
TemplateCtx0.15400300
TranslatorHungarian0.153874735527306
TranslatorPortuguese0.1537143153.7425506
TranslatorKorean0.1549855552.7131006
TranslatorKoreanEn0.155444.44902
TranslatorPolish0.1539245753.8327306
TranslatorFinnish0.1548990064.7931606
TranslatorSpanish0.1549752851.5131006
TranslatorCroatian0.1546435543.3530206
TranslatorRussian0.1556649046.433306
TranslatorDanish0.1536145155.5424607
TranslatorBrazilian0.1550451550.5431206
TranslatorUkrainian0.1543345751.3528506
TranslatorSlovak0.1536836649.8624906
TranslatorNorwegian0.1539347654.7827106
TranslatorSlovene0.1535036150.7724706
TranslatorRomanian0.1539547654.6527206
TranslatorChinesetraditional0.1545759256.4328506
TranslatorChinese0.1544159557.4328206
MemberNameSDict0.15300405
SIntDict<T>+Iterator0.1572175701
QCacheIterator<type>0.1515001702
QTSManip0.153125401
SourceReference0.1500-000
IndexList0.1521001906
QValueListPrivate<T>0.157445.132505
SIntList<T>0.15100302
SDict<T>+IteratorDict0.1582273.33802
QIntDictIterator<type>0.159001103
QTextOStreamIterator<T>0.15700702
FileCache0.1500-200
DirSDict0.15100404
EntryCache0.1500-000
LookupInfo0.1500-203
TextGeneratorOLImpl0.1518001104
SectionDict0.1500-302
StringDict0.1500-402
SList<T>0.15100302
NamespaceMemberHighlight0.15-0-000
QXmlInputSourcePrivate0.1500-000
Entry+GroupDocType0.15-0-000
Entry+ClassSpecifier0.15-0-000
QXmlDefaultHandlerPrivate0.1500-000
ClassHighlight0.15-0-000
QXmlParseExceptionPrivate0.1500-000
QXmlLocatorPrivate0.1500-000
QXmlAttributesPrivate0.1500-000
ClassMemberHighlight0.15-0-000
QXmlDefaultHandler0.152661395.9329012
DefinitionListIterator0.1500-203
IndexSections0.15-0-000
DocInfo0.1500-100
QXmlNamespaceSupportPrivate0.1500-000
FileMemberHighlight0.15-0-000
BriefInfo0.1500-100
QFileInfo+PermissionSpec0.15-0-000
QSortedList<type>0.15500701
DefineList0.15100404
QStrIVec0.15200503
DefineNameList0.15100403
yy_buffer_state0.1500-000
LabelMapper0.15800606
NamespaceListIterator0.1500-103
yy_buffer_state0.1500-000
MD5Context0.1506100000
QUtf8Codec0.154224.552006
QUtf16Codec0.15900905
StreamStorage0.1526001302
yy_buffer_state0.1500-000
FileNameListIterator0.1500-203
FileNameDict0.1500-303
FileNameIterator0.1500-203
SCString0.15151244.446701
NamespaceDict0.1500-302
HtmlTagType0.15-0-000
CommandType0.15-0-000
Mappers0.15400100
Mapper0.151000805
QPtrDictIterator<type>0.159001103
DirRelation0.1533717.56011
QQueue<type>0.1515001702
QStrIList0.15200403
yy_buffer_state0.1500-000
CondCtx0.1500-301
BufStr0.1529617.141902
ConfigFileState0.1504100300
yy_buffer_state0.1500-000
VariableContext0.151366130.9641013
MethodContext0.15500301
yy_buffer_state0.1500-000
CallContext0.153126.061507

Types Metrics : Code Members and Inheritance

Type Name # Instance Methods Nb Static Methods Nb Properties # Fields# Children ClassesDepth Of Inheritance Tree Type Namespace
Type Name Nb Instance Methods Nb Static Methods Nb Properties Nb FieldsNb Children ClassesDepth Of Inheritance Tree Type Namespace
qtoolsGlobalMembers17931026600
QString118140310
QCString6610100
CppDependencyGlobalMembers4573691556600
QCollection10021490
QList<type>41000252
QChar3710700
QGList47006281
QShared4001--
ClassDef+CompoundType------
Config2520500
Translator22502164460
QGArray3010110
QArray<type>3600001
QDict<type>1700082
Definition7323451
QListIterator<type>17000101
QLNode300300
QBaseBucket600240
FileDef75002602
MemberDef16000502
QTextStream79001720
SDict<T>1700380
QChar+Decomposition------
QTextCodec18103060
ClassDef12200202
QGDict33007131
QChar+Direction------
QValueListNode<T>200300
TranslatorEnglish22000031
QMapNodeBase4004--
QGListIterator14002110
QCharRef3500200
QDataStream4300600
QGDict+KeyType------
QRegExp2000500
QStack<type>1700002
TranslatorAdapterBase6011271
DefinitionIntf+DefType------
QStringData5005--
QIODevice4309340
QTextDecoder501040
QGVector2810331
QBidiState300200
QLigature800200
QValueListIterator<T>1100100
Protection------
QGArray+array_data2002--
OutputGenerator+OutputType------
QChar+Joining------
QChar+Category------
ConfigOption+OptionType------
QGDictIterator1300340
QValueList<T>3900120
LockableObj702160
Specifier------
TranslatorAdapter_1_4_67000203
ConfigOption1902670
QFile3160711
CodeOutputInterface15011060
Store1400601
QMapNode<K,T>4002--
QMapNodeBase+Color------
SIntDict<T>1400300
QStrList900113
QXmlSimpleReader76002501
QCacheItem3006--
NamespaceDef48001102
QChar+AnonymousEnum------
Doxygen0006200
Debug050200
QValueListConstIterator<T>1100100
StorageIntf602030
FileName800204
TranslatorAdapter_1_5_427000262
QBuffer1900301
OutputList19300103
SectionInfo+SectionType------
BaseOutputDocInterface62056031
Debug+DebugMask------
FileList600113
MemberList+ListType------
QTextEncoder501020
QMapIterator<K,T>1600100
QIntDict<type>1700012
UsesClassDef4004--
QXmlInputSource900200
DirDef3330902
MemberNameInfo600103
QXmlParseException800600
ParserInterface805010
ConfigOption+AnonymousEnum------
MemberDef+MemberType------
ListItemInfo2002--
LockingPtr<T>1300200
QVector<type>2600022
Argument5006--
BaseClassDef3005--
DefinitionIntf501070
QDataStream+ByteOrder------
QMapConstIterator<K,T>1500100
MemberInfo3007--
QStringBucket300101
QAsciiBucket300101
QPtrBucket300101
QIntBucket300101
MemberName600103
SDict<T>+Iterator700100
QGCache2000611
TextGeneratorIntf703020
DefinitionList600003
QXmlAttributes1600500
QXmlLocator500200
QTextStream+Encoding------
BaseOutputDocInterface+SectionTypes------
TranslatorAdapter_1_4_16000104
Define4001400
QCList1500803
FilePair500200
QTextCodecFromIOD1300801
ClassList500013
QGCache+KeyType------
MemberList34001403
QGCacheIterator1800110
QCache<type>1800002
QTextOStream500001
SectionInfo4007--
Entry15002800
NamespaceList400003
BaseOutputDocInterface+ParamListTypes------
Store+State------
Store+Node2002--
BaseClassList500003
ConfigString+WidgetType------
ArgumentList500303
QDictIterator<type>1100011
QDir45150800
ConfigList+WidgetType------
TranslatorAdapter_1_3_3900057
Entry+Sections------
OutputDocInterface1108012
ParserManager300200
ObjCache+HashNode2004--
ObjCache+CacheNode2003--
QFileInfo3920300
QMultiByteUnicodeTable3002--
ClassSDict600001
HighlightedItem------
QStrVec1000113
QPtrDict<type>1700002
FileNameList600003
CPPValue+Type------
DefineName500103
CPPValue+Anonymous00-2--
QStringBuffer1500101
QTextStreamPrivate+SourceType------
QTextStream+AnonymousEnum------
QTextStreamPrivate300300
IncludeInfo3004--
QTextStatelessDecoder500101
QTextStatelessEncoder500101
QWindowsLocalCodec900001
ConfigList1100201
ConfigEnum1000301
ConfigString1100301
ConfigObsolete600001
ConfigBool1100301
ConfigInt1200501
ConfigInfo600001
QXmlLexicalHandler1006010
QXmlErrorHandler804010
QXmlDeclHandler804010
QXmlDTDHandler703010
QXmlContentHandler16012010
QXmlEntityResolver602010
DirEntry+EntryKind------
QStringList1050001
QGDItList400003
TranslatorAdapter_1_3_8600066
Relationship------
BodyInfo2003--
DefinitionImpl6001300
MemberSDict400001
TranslatorAdapter_1_3_91100075
MemberListIterator400002
TranslatorAdapter_1_3_1700038
QCListIt500002
NamespaceSDict600001
TranslatorAdapter_1_31000029
QMap<Key,T>2100100
QValueStack<T>600001
DirEntry1200610
QUtf16Decoder500401
QUtf16Encoder500101
CommandMap0002--
QDate2650300
QTime2630100
Entry+MemberSpecifier------
ObjCache13001000
MemberDefImpl5004100
SrcLangExt------
UsedDir900300
QCDict1700002
QUtf8Decoder500201
TranslatorAdapter_1_2_187000110
LabelMap0002--
IndexIntf1107010
FilePairDict500001
DevNullCodeDocInterface1500001
PreproData1004--
OutputGenerator1120100902
CallContext+Ctx3004--
Anonymous0003--
QMapPrivateBase800111
QFileInfoCache1002--
QDateTime2410200
QTextCodecFromIODDecoder500201
MemberNameInfoIterator300002
ClassDefImpl5003700
BaseClassListIterator300002
MemberNameInfoSDict500001
UsesClassDict400003
FileStorage600002
QXmlReader23019010
QXmlSimpleReader+EntityRecognitionContext------
QXmlNamespaceSupport1400300
QXmlSimpleReaderPrivate3001900
QXmlSimpleReaderPrivate+ExternParameterEntity5002--
QXmlSimpleReaderPrivate+Standalone------
QXmlSimpleReaderPrivate+ExternEntity5003--
DirList500003
VariableContext+Scope600201
EntryNav18001000
QGString2200300
BaseInfo2003--
RelatesType------
MethodTypes------
QDir+SortSpec------
QDirSortItem2002--
QDir+FilterSpec------
QMapPrivate<Key,T>1600102
QTextIStream500001
TranslatorItalian22000001
MemberDict300003
TranslatorJapanese20800003
TranslatorCzech22000001
TranslatorGerman22000001
TranslatorIndonesian20600004
TranslatorFrench19800003
ClassListIterator200002
ClassDict300003
TranslatorSwedish19600004
TranslatorDutch22000001
OutputNameList400003
MemberNameIterator200002
CLanguageScanner900001
CPPValue700200
QLatin1Codec1000101
DocLexerContext3005--
Tokens------
yy_buffer_state00010--
TokenInfo+ParamDir------
TokenInfo00013--
STLInfo0009--
QSimpleTextCodec1000101
OutputNameDict300003
QConstString400001
QtMsgType------
TranslatorDecoder22400301
Directory800101
FindBaseClassRelation_Mode------
PrefixIgnoreClassList500004
MemberIndexList500003
TranslatorJapaneseEn900002
TranslatorPersian22000001
TranslatorArabic20600004
yy_buffer_state00010--
UsesClassDictIterator200002
TranslatorAfrikaans19600004
TranslatorSerbian22100001
TranslatorGreek20700003
TranslatorLithuanian19600004
TranslatorCatalan22000001
ValStack<T>900300
TextGeneratorXMLImpl700101
TranslatorMacedonian21600000
XMLCodeGenerator16001201
XmlSectionMapper400003
yy_buffer_state00010--
FileState3006--
FindFileCacheElem3002--
TemplateCtx300500
TranslatorHungarian19700004
TranslatorPortuguese19400008
TranslatorKorean22000001
TranslatorKoreanEn900002
TranslatorPolish20700004
TranslatorFinnish22000002
TranslatorSpanish22000003
TranslatorCroatian22100001
TranslatorRussian22000001
TranslatorDanish19900003
TranslatorBrazilian22000001
TranslatorUkrainian20600005
TranslatorSlovak186000011
TranslatorNorwegian20600004
TranslatorSlovene19600004
TranslatorRomanian20500005
TranslatorChinesetraditional22000001
TranslatorChinese22000001
MemberNameSDict400001
SIntDict<T>+Iterator700100
QCacheIterator<type>1700001
QTSManip400200
SourceReference0002--
IndexList1500101
QValueListPrivate<T>1200201
SIntList<T>300103
SDict<T>+IteratorDict800100
QIntDictIterator<type>1100001
QTextOStreamIterator<T>600200
FileCache2003--
DirSDict400001
EntryCache0006--
LookupInfo2004--
TextGeneratorOLImpl700101
SectionDict300003
StringDict400003
SList<T>300103
NamespaceMemberHighlight------
QXmlInputSourcePrivate000000
Entry+GroupDocType------
Entry+ClassSpecifier------
QXmlDefaultHandlerPrivate000000
ClassHighlight------
QXmlParseExceptionPrivate000000
QXmlLocatorPrivate000000
QXmlAttributesPrivate000000
ClassMemberHighlight------
QXmlDefaultHandler2900101
DefinitionListIterator200002
IndexSections------
DocInfo1003--
QXmlNamespaceSupportPrivate000000
FileMemberHighlight------
BriefInfo1004--
QFileInfo+PermissionSpec------
QSortedList<type>500003
DefineList400003
QStrIVec500004
DefineNameList400003
yy_buffer_state00010--
LabelMapper400100
NamespaceListIterator100002
yy_buffer_state00010--
MD5Context0003--
QUtf8Codec800001
QUtf16Codec800001
StreamStorage1100301
yy_buffer_state00010--
FileNameListIterator200002
FileNameDict300003
FileNameIterator200002
SCString6310100
NamespaceDict300003
HtmlTagType------
CommandType------
Mappers0102--
Mapper500200
QPtrDictIterator<type>1100001
DirRelation500300
QQueue<type>1600002
QStrIList400004
yy_buffer_state00010--
CondCtx3003--
BufStr1500400
ConfigFileState3005--
yy_buffer_state00010--
VariableContext1100300
MethodContext300300
yy_buffer_state00010--
CallContext900100

Types Metrics : Lack Of Cohesion Of Methods and Association Between Classes

Type Name Lack Of Cohesion Of MethodsLack Of Cohesion Of Methods HSAssociation Between Classes Type Namespace
Type Name Lack Of Cohesion Of MethodsLack Of Cohesion Of Methods HSAssociation Between Classes Type Namespace
qtoolsGlobalMembers0.990.99192
QString0.680.69121
QCString0.430.4438
CppDependencyGlobalMembers111527
QCollection0.440.52
QList<type>0034
QChar0.640.6633
QGList0.680.720
QShared000
ClassDef+CompoundType--0
Config0.690.72104
Translator0018
QGArray0.260.2721
QArray<type>0016
QDict<type>0014
Definition0.850.86136
QListIterator<type>0015
QLNode0.671.330
QBaseBucket0.40.50
FileDef0.960.97207
MemberDef0.820.83250
QTextStream0.90.92110
SDict<T>0.450.483
QChar+Decomposition--0
QTextCodec0045
ClassDef0.620.63387
QGDict0.710.7367
QChar+Direction--0
QValueListNode<T>0.831.670
TranslatorEnglish0022
QMapNodeBase0.751.50
QGListIterator0.290.3113
QCharRef0.030.0333
QDataStream0.730.7524
QGDict+KeyType--0
QRegExp0.670.7136
QStack<type>0013
TranslatorAdapterBase11.56
DefinitionIntf+DefType--0
QStringData0.40.533
QIODevice0.80.8210
QTextDecoder000
QGVector0.430.4421
QBidiState000
QLigature0.570.6714
QValueListIterator<T>000
Protection--0
QGArray+array_data001
OutputGenerator+OutputType--0
QChar+Joining--0
QChar+Category--0
ConfigOption+OptionType--0
QGDictIterator0.460.518
QValueList<T>0.150.164
LockableObj0.60.750
Specifier--0
TranslatorAdapter_1_4_6009
ConfigOption0.910.9724
QFile0.820.8579
CodeOutputInterface000
Store0.510.5623
QMapNode<K,T>0.380.50
QMapNodeBase+Color--0
SIntDict<T>0.430.463
QStrList0.560.6213
QXmlSimpleReader0.910.92139
QCacheItem000
NamespaceDef0.930.96150
QChar+AnonymousEnum--0
Doxygen000
Debug005
QValueListConstIterator<T>000
StorageIntf000
FileName0.580.725
TranslatorAdapter_1_5_40029
QBuffer0.60.6323
OutputList0.810.81168
SectionInfo+SectionType--0
BaseOutputDocInterface002
Debug+DebugMask--0
FileList0.40.57
MemberList+ListType--0
QTextEncoder000
QMapIterator<K,T>0.250.276
QIntDict<type>0013
UsesClassDef0.580.885
QXmlInputSource0.640.7543
DirDef0.920.95118
MemberNameInfo0.50.6713
QXmlParseException0.720.872
ParserInterface001
ConfigOption+AnonymousEnum--0
MemberDef+MemberType--0
ListItemInfo000
LockingPtr<T>0.380.424
QVector<type>0021
Argument0.580.782
BaseClassDef000
DefinitionIntf000
QDataStream+ByteOrder--0
QMapConstIterator<K,T>0.270.296
MemberInfo0.641.290
QStringBucket001
QAsciiBucket001
QPtrBucket001
QIntBucket001
MemberName0.50.6712
SDict<T>+Iterator000
QGCache0.570.6162
TextGeneratorIntf000
DefinitionList009
QXmlAttributes0.860.927
QXmlLocator0.620.832
QTextStream+Encoding--0
BaseOutputDocInterface+SectionTypes--0
TranslatorAdapter_1_4_1008
Define0.771.024
QCList11.0819
FilePair0.330.50
QTextCodecFromIOD0.750.8243
ClassList003
QGCache+KeyType--0
MemberList0.850.8895
QGCacheIterator0.060.0621
QCache<type>0017
QTextOStream005
SectionInfo0.330.52
Entry0.840.961
NamespaceList005
BaseOutputDocInterface+ParamListTypes--0
Store+State--0
Store+Node000
BaseClassList008
ConfigString+WidgetType--0
ArgumentList0.67111
QDictIterator<type>0010
QDir0.830.84134
ConfigList+WidgetType--0
TranslatorAdapter_1_3_30011
Entry+Sections--0
OutputDocInterface001
ParserManager0.170.2511
ObjCache+HashNode000
ObjCache+CacheNode000
QFileInfo0.590.645
QMultiByteUnicodeTable0.250.50
ClassSDict0068
HighlightedItem--0
QStrVec0.50.5710
QPtrDict<type>0013
FileNameList0011
CPPValue+Type--0
DefineName0.50.677
CPPValue+Anonymous000
QStringBuffer0.530.5718
QTextStreamPrivate+SourceType--0
QTextStream+AnonymousEnum--0
QTextStreamPrivate0.510
IncludeInfo0.751.51
QTextStatelessDecoder004
QTextStatelessEncoder004
QWindowsLocalCodec0013
ConfigList0.50.5720
ConfigEnum0.570.6721
ConfigString0.670.7520
ConfigObsolete002
ConfigBool0.50.5729
ConfigInt0.620.722
ConfigInfo0010
QXmlLexicalHandler000
QXmlErrorHandler000
QXmlDeclHandler000
QXmlDTDHandler000
QXmlContentHandler000
QXmlEntityResolver000
DirEntry+EntryKind--0
QStringList0035
QGDItList006
TranslatorAdapter_1_3_8008
Relationship--0
BodyInfo0.6700
DefinitionImpl0.630.8514
MemberSDict006
TranslatorAdapter_1_3_90013
MemberListIterator002
TranslatorAdapter_1_3_1009
QCListIt002
NamespaceSDict0050
TranslatorAdapter_1_30012
QMap<Key,T>0.10.12
QValueStack<T>001
DirEntry0.730.813
QUtf16Decoder0.120.2516
QUtf16Encoder0011
CommandMap000
QDate0.240.2516
QTime0.310.3217
Entry+MemberSpecifier--0
ObjCache0.730.813
MemberDefImpl0.67125
SrcLangExt--0
UsedDir0.620.7212
QCDict0014
QUtf8Decoder0.250.510
TranslatorAdapter_1_2_18009
LabelMap000
IndexIntf000
FilePairDict008
DevNullCodeDocInterface002
PreproData000
OutputGenerator0.980.9941
CallContext+Ctx000
Anonymous000
QMapPrivateBase0.670.89
QFileInfoCache000
QDateTime0.230.2455
QTextCodecFromIODDecoder0012
MemberNameInfoIterator002
ClassDefImpl0.711.0716
BaseClassListIterator002
MemberNameInfoSDict005
UsesClassDict002
FileStorage007
QXmlReader000
QXmlSimpleReader+EntityRecognitionContext--0
QXmlNamespaceSupport0.690.7633
QXmlSimpleReaderPrivate100
QXmlSimpleReaderPrivate+ExternParameterEntity0.510
QXmlSimpleReaderPrivate+Standalone--0
QXmlSimpleReaderPrivate+ExternEntity0.510
DirList006
VariableContext+Scope0.67114
EntryNav0.770.8217
QGString0.380.411
BaseInfo000
RelatesType--0
MethodTypes--0
QDir+SortSpec--0
QDirSortItem000
QDir+FilterSpec--0
QMapPrivate<Key,T>0.190.210
QTextIStream005
TranslatorItalian0023
MemberDict002
TranslatorJapanese0024
TranslatorCzech0023
TranslatorGerman0022
TranslatorIndonesian0022
TranslatorFrench0022
ClassListIterator001
ClassDict002
TranslatorSwedish0022
TranslatorDutch0021
OutputNameList006
MemberNameIterator001
CLanguageScanner0013
CPPValue0.080.15
QLatin1Codec11.1415
DocLexerContext000
Tokens--0
yy_buffer_state000
TokenInfo+ParamDir--0
TokenInfo000
STLInfo000
QSimpleTextCodec0.250.2935
OutputNameDict002
QConstString004
QtMsgType--0
TranslatorDecoder0.660.67232
Directory0.50.610
FindBaseClassRelation_Mode--0
PrefixIgnoreClassList0010
MemberIndexList006
TranslatorJapaneseEn004
TranslatorPersian0025
TranslatorArabic0023
yy_buffer_state000
UsesClassDictIterator002
TranslatorAfrikaans0023
TranslatorSerbian0023
TranslatorGreek0022
TranslatorLithuanian0022
TranslatorCatalan0022
ValStack<T>0.330.381
TextGeneratorXMLImpl0.250.334
TranslatorMacedonian000
XMLCodeGenerator0.70.7526
XmlSectionMapper0038
yy_buffer_state000
FileState0.500
FindFileCacheElem000
TemplateCtx0.200
TranslatorHungarian0023
TranslatorPortuguese0022
TranslatorKorean0022
TranslatorKoreanEn004
TranslatorPolish0022
TranslatorFinnish0024
TranslatorSpanish0022
TranslatorCroatian0024
TranslatorRussian0024
TranslatorDanish0024
TranslatorBrazilian0022
TranslatorUkrainian0024
TranslatorSlovak0022
TranslatorNorwegian0022
TranslatorSlovene0022
TranslatorRomanian0023
TranslatorChinesetraditional0022
TranslatorChinese0023
MemberNameSDict007
SIntDict<T>+Iterator000
QCacheIterator<type>0014
QTSManip000
SourceReference000
IndexList0.540.5817
QValueListPrivate<T>0.330.363
SIntList<T>0.330.51
SDict<T>+IteratorDict000
QIntDictIterator<type>0010
QTextOStreamIterator<T>0.580.71
FileCache000
DirSDict006
EntryCache000
LookupInfo0.250.50
TextGeneratorOLImpl0.20.2510
SectionDict002
StringDict002
SList<T>0.330.51
NamespaceMemberHighlight--0
QXmlInputSourcePrivate000
Entry+GroupDocType--0
Entry+ClassSpecifier--0
QXmlDefaultHandlerPrivate000
ClassHighlight--0
QXmlParseExceptionPrivate000
QXmlLocatorPrivate000
QXmlAttributesPrivate000
ClassMemberHighlight--0
QXmlDefaultHandler11.0415
DefinitionListIterator002
IndexSections--0
DocInfo000
QXmlNamespaceSupportPrivate000
FileMemberHighlight--0
BriefInfo000
QFileInfo+PermissionSpec--0
QSortedList<type>002
DefineList006
QStrIVec007
DefineNameList005
yy_buffer_state000
LabelMapper007
NamespaceListIterator001
yy_buffer_state000
MD5Context000
QUtf8Codec0014
QUtf16Codec004
StreamStorage0.370.415
yy_buffer_state000
FileNameListIterator001
FileNameDict004
FileNameIterator001
SCString0.920.943
NamespaceDict002
HtmlTagType--0
CommandType--0
Mappers000
Mapper0013
QPtrDictIterator<type>0010
DirRelation0.470.5827
QQueue<type>0012
QStrIList006
yy_buffer_state000
CondCtx000
BufStr0.550.596
ConfigFileState000
yy_buffer_state000
VariableContext0.390.4469
MethodContext0.170.331
yy_buffer_state000
CallContext0.140.1719

Namespaces Metrics

If you wish to define thresholds on namespaces' Code Metrics, consider writing some CQL Rules.
Clicking column header arrows sorts values.
Clicking column header title text redirect to the online Code Metric definition.
Namespaces # lines of code # Types # lines of comment% CommentAfferent CouplingEfferent Coupling
Namespaces # lines of code # Types # lines of comment% CommentAfferent CouplingEfferent Coupling
qtools::GlobalNamespace121031440012
CppDependency::GlobalNamespace439522400003

Code Quality  
 0 13 0 

warningCritical    Rule warning: Types too big - critical
// <Name>Types too big - critical</Name>
warnif count > 0 from t in JustMyCode.Types where 
   
t.NbLinesOfCode > 500 && !t.IsGlobal
   
orderby t.NbLinesOfCode descending
select new { t, t.NbLinesOfCode,
                
t.NbMethods, t.NbFields }

// Types where NbLinesOfCode > 500 are extremely complex 
// and should be split in a smaller group of types. 
// See the definition of the NbLinesOfCode metric here 
// http://www.cppdepend.com/Metrics.aspx#NbLinesOfCode

12 types matched

types# lines of code (LOC)# Methods# FieldsFull Name
types# lines of code (LOC)# Methods# FieldsFull Name
QXmlSimpleReader2 7927625QXmlSimpleReader
ClassDef1 1791222ClassDef
QString1 1741323QString
QTextStream8677917QTextStream
Config794275Config
MemberDef7781605MemberDef
TranslatorRussian5662200TranslatorRussian
QGDict529337QGDict
TranslatorCatalan5082200TranslatorCatalan
TranslatorCzech5062200TranslatorCzech
TranslatorBrazilian5042200TranslatorBrazilian
TranslatorItalian5012200TranslatorItalian

Statistics

Stat   # lines of code (LOC)   # Methods   # Fields
Sum:10 6981 72964
Average:891.5144.085.3333
Minimum:501270
Maximum:2 79222025
Standard deviation:621.3673.3847.5535
Variance:386 0865 38557.056
warningCritical    Rule warning: Methods too complex - critical
// <Name>Methods too complex - critical</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.CyclomaticComplexity > 20 && 
  
m.NestingDepth > 5
  
orderby m.CyclomaticComplexity descending,
          
m.NestingDepth descending
select new { m, m.CyclomaticComplexity, m.NestingDepth }

// Methods with CyclomaticComplexity > 20 and NestingDepth  > 5
// are really too complex and should be split 
// in smaller methods, or even types.
// See the definition of the CyclomaticComplexity metric here 
// http://www.cppdepend.com/Metrics.aspx#CC
// See the definition of the NestingDepth metric here 
// http://www.cppdepend.com/Metrics.aspx#NestingDepth

46 methods matched

methodsCyclomatic Complexity (CC)NestingDepthFull Name
methodsCyclomatic Complexity (CC)NestingDepthFull Name
scanYYlex()98235CppDependencyGlobalMembers.scanYYlex()
codeYYlex()37914CppDependencyGlobalMembers.codeYYlex()
preYYlex()27111CppDependencyGlobalMembers.preYYlex()
doctokenizerYYlex()2288CppDependencyGlobalMembers.doctokenizerYYlex()
yylex()1387CppDependencyGlobalMembers.yylex()
findMember(EntryNav*,QCString,bool,bool)12012CppDependencyGlobalMembers.findMember(EntryNav*,QCString,bool,bool)
defargsYYlex()1168CppDependencyGlobalMembers.defargsYYlex()
generateXMLForMember(MemberDef*,QTextStream&,QTextStream&,Definition* ,bool)948CppDependencyGlobalMembers.generateXMLForMember(MemberDef* ,QTextStream&,QTextStream&,Definition*,bool)
configYYlex()857CppDependencyGlobalMembers.configYYlex()
parseEntityDecl()796QXmlSimpleReader.parseEntityDecl()
getDefs(constQCString&,constQCString&,constchar*,MemberDef*& ,ClassDef*&,FileDef*&,NamespaceDef*&,GroupDef*&,bool,FileDef*,bool ,bool)719CppDependencyGlobalMembers.getDefs(constQCString&,constQCString& ,constchar*,MemberDef*&,ClassDef*&,FileDef*&,NamespaceDef*&,GroupDef*& ,bool,FileDef*,bool,bool)
parseContent()707QXmlSimpleReader.parseContent()
declinfoYYlex()697CppDependencyGlobalMembers.declinfoYYlex()
internalInsertMember(MemberDef*,Protection,bool)657ClassDef.internalInsertMember(MemberDef*,Protection,bool)
cppExpYYlex()627CppDependencyGlobalMembers.cppExpYYlex()
matchstring(uint*,constchar*,uint,constchar*,bool)567qtoolsGlobalMembers.matchstring(uint*,constchar*,uint,constchar*,bool)
generateClassOrGlobalLink(CodeOutputInterface&,char*,QCString&,bool ,bool,bool)497CppDependencyGlobalMembers.generateClassOrGlobalLink (CodeOutputInterface&,char*,QCString&,bool,bool,bool)
findBases(QCString,Definition*,FileDef*,bool)489CppDependencyGlobalMembers.findBases(QCString,Definition*,FileDef* ,bool)
replaceFunctionMacro(constQCString&,QCString*,int,int&,constDefine* ,QCString&)448CppDependencyGlobalMembers.replaceFunctionMacro(constQCString& ,QCString*,int,int&,constDefine*,QCString&)
parseProlog()426QXmlSimpleReader.parseProlog()
sprintf(constchar*)416QString.sprintf(constchar*)
ts_getbuf(QChar*,uint)416QTextStream.ts_getbuf(QChar*,uint)
buildFunctionList(EntryNav*)3812CppDependencyGlobalMembers.buildFunctionList(EntryNav*)
findClassRelation(EntryNav*,Definition*,ClassDef*,BaseInfo*,QDict<int >*,FindBaseClassRelation_Mode,bool)387CppDependencyGlobalMembers.findClassRelation(EntryNav*,Definition* ,ClassDef*,BaseInfo*,QDict<int>*,FindBaseClassRelation_Mode,bool)
mergeMembers()3611ClassDef.mergeMembers()
compile()367QRegExp.compile()
addVariable(EntryNav*,int)366CppDependencyGlobalMembers.addVariable(EntryNav*,int)
filterLatexString(QTextStream&,constchar*,bool,bool,bool)356CppDependencyGlobalMembers.filterLatexString(QTextStream&,constchar* ,bool,bool,bool)
writeMemberList(OutputList&)356ClassDef.writeMemberList(OutputList&)
writePlainDeclarations(OutputList&,ClassDef*,NamespaceDef*,FileDef* ,GroupDef*)328MemberList.writePlainDeclarations(OutputList&,ClassDef*,NamespaceDef* ,FileDef*,GroupDef*)
QTextCodecFromIOD(QIODevice*)308QTextCodecFromIOD.QTextCodecFromIOD(QIODevice*)
processReference(bool&,QXmlSimpleReader::EntityRecognitionContext)307QXmlSimpleReader.processReference(bool& ,QXmlSimpleReader::EntityRecognitionContext)
removeAndRebalance(QMapNodeBase*,QMapNodeBase*&,QMapNodeBase*& ,QMapNodeBase*&)306QMapPrivateBase.removeAndRebalance(QMapNodeBase*,QMapNodeBase*& ,QMapNodeBase*&,QMapNodeBase*&)
getLinkInScope(constQCString&,constQCString&,constchar* ,CodeOutputInterface&,constchar*,bool)297CppDependencyGlobalMembers.getLinkInScope(constQCString& ,constQCString&,constchar*,CodeOutputInterface&,constchar*,bool)
addEnumValuesToEnums(EntryNav*)2813CppDependencyGlobalMembers.addEnumValuesToEnums(EntryNav*)
isAccessibleFromWithExpScope(Definition*,FileDef*,Definition* ,constQCString&)279CppDependencyGlobalMembers.isAccessibleFromWithExpScope(Definition* ,FileDef*,Definition*,constQCString&)
writeAlphabeticalClassList(OutputList&)276CppDependencyGlobalMembers.writeAlphabeticalClassList(OutputList&)
findUsedClassesForClass(EntryNav*,Definition*,ClassDef*,ClassDef*,bool ,ArgumentList*,QDict<int>*)2610CppDependencyGlobalMembers.findUsedClassesForClass(EntryNav* ,Definition*,ClassDef*,ClassDef*,bool,ArgumentList*,QDict<int>*)
linkifyText(constTextGeneratorIntf&,Definition*,FileDef*,constchar* ,constchar*,QDict<int>&,bool,bool,bool)266CppDependencyGlobalMembers.linkifyText(constTextGeneratorIntf& ,Definition*,FileDef*,constchar*,constchar*,QDict<int>&,bool,bool,bool )
readIncludeFile(QCString&)247CppDependencyGlobalMembers.readIncludeFile(QCString&)
parseFiles(Entry*,EntryNav*)2310CppDependencyGlobalMembers.parseFiles(Entry*,EntryNav*)
generateMemberLink(CodeOutputInterface&,constQCString&,char*)229CppDependencyGlobalMembers.generateMemberLink(CodeOutputInterface& ,constQCString&,char*)
addIncludedUsingDirectives()218FileDef.addIncludedUsingDirectives()
transferFunctionReferences()217CppDependencyGlobalMembers.transferFunctionReferences()
findFile(constchar*,bool,bool&,bool)217CppDependencyGlobalMembers.findFile(constchar*,bool,bool&,bool)
parsePEReference(QXmlSimpleReader::EntityRecognitionContext)216QXmlSimpleReader.parsePEReference (QXmlSimpleReader::EntityRecognitionContext)

Statistics

Stat   Cyclomatic Complexity (CC)   NestingDepth
Sum:3 842391
Average:83.5228.5
Minimum:216
Maximum:98235
Standard deviation:150.374.422
Variance:22 61119.554
warningCritical    Rule warning: Methods with too many parameters - critical
// <Name>Methods with too many parameters - critical</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.NbParameters > 8
  
orderby m.NbParameters descending
select new { m, m.NbParameters }

// Methods with more than 8 parameters might be painful to call 
// and might degrade performance. You should prefer using 
// additional properties/fields to the declaring type to 
// handle numerous states. Another alternative is to provide 
// a class or structure dedicated to handle arguments passing 
// (for example see the class System.Diagnostics.ProcessStartInfo 
//  and the method System.Diagnostics.Process.Start(ProcessStartInfo))
//  See the definition of the NbParameters metric here 
// http://www.cppdepend.com/Metrics.aspx#NbParameters

14 methods matched

methods# ParametersFull Name
methods# ParametersFull Name
MemberDef(constchar*,int,constchar*,constchar*,constchar*,constchar* ,Protection,Specifier,bool,Relationship,MemberDef::MemberType ,constArgumentList*,constArgumentList*)13MemberDef.MemberDef(constchar*,int,constchar*,constchar*,constchar* ,constchar*,Protection,Specifier,bool,Relationship ,MemberDef::MemberType,constArgumentList*,constArgumentList*)
Init(constchar*,int,constchar*,constchar*,constchar*,constchar* ,Protection,Specifier,bool,Relationship,MemberDef::MemberType ,constArgumentList*,constArgumentList*)13MemberDef.Init(constchar*,int,constchar*,constchar*,constchar* ,constchar*,Protection,Specifier,bool,Relationship ,MemberDef::MemberType,constArgumentList*,constArgumentList*)
getDefs(constQCString&,constQCString&,constchar*,MemberDef*& ,ClassDef*&,FileDef*&,NamespaceDef*&,GroupDef*&,bool,FileDef*,bool ,bool)12CppDependencyGlobalMembers.getDefs(constQCString&,constQCString& ,constchar*,MemberDef*&,ClassDef*&,FileDef*&,NamespaceDef*&,GroupDef*& ,bool,FileDef*,bool,bool)
readFileOrDirectory(constchar*,FileNameList*,FileNameDict*,StringDict* ,QStrList*,QStrList*,StringList*,StringDict*,bool,bool,QDict<void>*)11CppDependencyGlobalMembers.readFileOrDirectory(constchar* ,FileNameList*,FileNameDict*,StringDict*,QStrList*,QStrList* ,StringList*,StringDict*,bool,bool,QDict<void>*)
readDir(QFileInfo*,FileNameList*,FileNameDict*,StringDict*,QStrList* ,QStrList*,StringList*,StringDict*,bool,bool,QDict<void>*)11CppDependencyGlobalMembers.readDir(QFileInfo*,FileNameList* ,FileNameDict*,StringDict*,QStrList*,QStrList*,StringList*,StringDict* ,bool,bool,QDict<void>*)
init(Definition*,constchar*,constchar*,constchar*,Protection,Specifier ,bool,Relationship,MemberDef::MemberType,constArgumentList* ,constArgumentList*)11MemberDefImpl.init(Definition*,constchar*,constchar*,constchar* ,Protection,Specifier,bool,Relationship,MemberDef::MemberType ,constArgumentList*,constArgumentList*)
parseCCode(CodeOutputInterface&,constchar*,constQCString&,bool ,constchar*,FileDef*,int,int,bool,MemberDef*)10CppDependencyGlobalMembers.parseCCode(CodeOutputInterface&,constchar* ,constQCString&,bool,constchar*,FileDef*,int,int,bool,MemberDef*)
getResolvedSymbol(Definition*,FileDef*,Definition*,QCString& ,ArgumentList*,int&,ClassDef*&,MemberDef*&,QCString&,QCString&)10CppDependencyGlobalMembers.getResolvedSymbol(Definition*,FileDef* ,Definition*,QCString&,ArgumentList*,int&,ClassDef*&,MemberDef*& ,QCString&,QCString&)
parseDoc(constchar*,int,Definition*,MemberDef*,constQCString&,bool ,bool,constchar*,bool,bool)10OutputList.parseDoc(constchar*,int,Definition*,MemberDef* ,constQCString&,bool,bool,constchar*,bool,bool)
parseCode(CodeOutputInterface&,constchar*,constQCString&,bool ,constchar*,FileDef*,int,int,bool,MemberDef*)10ParserInterface.parseCode(CodeOutputInterface&,constchar* ,constQCString&,bool,constchar*,FileDef*,int,int,bool,MemberDef*)
parseCode(CodeOutputInterface&,constchar*,constQCString&,bool ,constchar*,FileDef*,int,int,bool,MemberDef*)10CLanguageScanner.parseCode(CodeOutputInterface&,constchar* ,constQCString&,bool,constchar*,FileDef*,int,int,bool,MemberDef*)
linkifyText(constTextGeneratorIntf&,Definition*,FileDef*,constchar* ,constchar*,QDict<int>&,bool,bool,bool)9CppDependencyGlobalMembers.linkifyText(constTextGeneratorIntf& ,Definition*,FileDef*,constchar*,constchar*,QDict<int>&,bool,bool,bool )
getResolvedClass(Definition*,FileDef*,constchar*,MemberDef**,QCString* ,bool,bool,QCString*,bool)9CppDependencyGlobalMembers.getResolvedClass(Definition*,FileDef* ,constchar*,MemberDef**,QCString*,bool,bool,QCString*,bool)
addRelatedPage(constchar*,constQCString&,constQCString&,QList <SectionInfo>*,constchar*,int,constQList<ListItemInfo>*,GroupDef* ,TagInfo*)9CppDependencyGlobalMembers.addRelatedPage(constchar*,constQCString& ,constQCString&,QList<SectionInfo>*,constchar*,int,constQList <ListItemInfo>*,GroupDef*,TagInfo*)

Statistics

Stat   # Parameters
Sum:148
Average:10.571
Minimum:9
Maximum:13
Standard deviation:1.2936
Variance:1.6735
warningCritical    Rule warning: Quick summary of methods to refactor
// <Name>Quick summary of methods to refactor</Name>
warnif count > 0 from m in JustMyCode.Methods where 
                                    
// Code Metrics' definitions
  m.NbLinesOfCode > 30 ||           // http://www.cppdepend.com/Metrics.aspx#NbLinesOfCode
  m.MaxNestedLoop > 3 ||       // http://www.cppdepend.com/Metrics.aspx#NbILInstructions
  m.CyclomaticComplexity > 20 ||    // http://www.cppdepend.com/Metrics.aspx#CC
  m.NestingDepth > 5 ||           // http://www.cppdepend.com/Metrics.aspx#ILNestingDepth
  m.NbParameters > 5 ||             // http://www.cppdepend.com/Metrics.aspx#NbParameters
  m.NbVariables > 8 ||              // http://www.cppdepend.com/Metrics.aspx#NbVariables
  m.NbOverloads > 6                 // http://www.cppdepend.com/Metrics.aspx#NbOverloads

select new { m, m.NbLinesOfCode, m.MaxNestedLoop, m.CyclomaticComplexity, 
              
m.NestingDepth, 
             
m.NbParameters, m.NbVariables, m.NbOverloads } 

468 methods matched

The following list of methods is truncated and contains only the first 100 methods of the 468 methods matched. All matched methods could be listed in the report by unchecking the option:
CppDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a CQL Rule violated
It is recommended to use the CppDepend interactive UI capabilities to browse a large list of matched methods.
methods# lines of code (LOC)MaxNestedLoopCyclomatic Complexity (CC)NestingDepth# Parameters# Variables# OverloadsFull Name
methods# lines of code (LOC)MaxNestedLoopCyclomatic Complexity (CC)NestingDepth# Parameters# Variables# OverloadsFull Name
duplicate(constQGArray&)32094122QGArray.duplicate(constQGArray&)
find(constchar*,uint,uint)431154381QGArray.find(constchar*,uint,uint)
contains(constchar*,uint)331134281QGArray.contains(constchar*,uint)
qSysInfo(int*,bool*)36182261qtoolsGlobalMembers.qSysInfo(int*,bool*)
qt_cmp_si(constvoid*,constvoid*)360152251qtoolsGlobalMembers.qt_cmp_si(constvoid*,constvoid*)
matchcharclass(uint*,char)23174291qtoolsGlobalMembers.matchcharclass(uint*,char)
matchstring(uint*,constchar*,uint,constchar*,bool)15625675111qtoolsGlobalMembers.matchstring(uint*,constchar*,uint,constchar*,bool)
wc2rx(constQCString&)321114141qtoolsGlobalMembers.wc2rx(constQCString&)
char_val(constchar**,uint*)831207281qtoolsGlobalMembers.char_val(constchar**,uint*)
dump(uint*)6222151101qtoolsGlobalMembers.dump(uint*)
setNum(short)1011108QCString.setNum(short)
setNum(ushort)1011108QCString.setNum(ushort)
setNum(int)1011108QCString.setNum(int)
setNum(uint)1011108QCString.setNum(uint)
setNum(long)17032138QCString.setNum(long)
setNum(ulong)9012128QCString.setNum(ulong)
setNum(float,char,int)1011308QCString.setNum(float,char,int)
setNum(double,char,int)0010308QCString.setNum(double,char,int)
QChar()2011009QChar.QChar()
QChar(char)2011109QChar.QChar(char)
QChar(uchar)2011109QChar.QChar(uchar)
QChar(uchar,uchar)2011209QChar.QChar(uchar,uchar)
QChar(constQChar&)2011109QChar.QChar(constQChar&)
QChar(ushort)2011109QChar.QChar(ushort)
QChar(short)2011109QChar.QChar(short)
QChar(uint)2011109QChar.QChar(uint)
QChar(int)2011109QChar.QChar(int)
QString()1011009QString.QString()
QString(QChar)2011109QString.QString(QChar)
QString(constQString&)1011109QString.QString(constQString&)
QString(constQByteArray&)3011129QString.QString(constQByteArray&)
QString(constQCString&)3011119QString.QString(constQCString&)
QString(constQChar*,uint)8052219QString.QString(constQChar*,uint)
QString(constchar*)3011119QString.QString(constchar*)
arg(long,int,int)10113010QString.arg(long,int,int)
arg(ulong,int,int)10113010QString.arg(ulong,int,int)
arg(int,int,int)10113010QString.arg(int,int,int)
arg(uint,int,int)10113010QString.arg(uint,int,int)
arg(short,int,int)10113010QString.arg(short,int,int)
arg(ushort,int,int)10113010QString.arg(ushort,int,int)
arg(char,int)30112110QString.arg(char,int)
arg(QChar,int)30112110QString.arg(QChar,int)
arg(constQString&,int)211632510QString.arg(constQString&,int)
arg(double,int,char,int)10114010QString.arg(double,int,char,int)
sprintf(constchar*)14714161281QString.sprintf(constchar*)
find(constQString&,int,bool)401133385QString.find(constQString&,int,bool)
findRev(constQString&,int,bool)401133385QString.findRev(constQString&,int,bool)
toLong(bool*,int)431183271QString.toLong(bool*,int)
toULong(bool*,int)351163261QString.toULong(bool*,int)
setNum(short,int)1011208QString.setNum(short,int)
setNum(ushort,int)1011208QString.setNum(ushort,int)
setNum(int,int)1011208QString.setNum(int,int)
setNum(uint,int)1011208QString.setNum(uint,int)
setNum(long,int)28053278QString.setNum(long,int)
setNum(ulong,int)13022248QString.setNum(ulong,int)
setNum(float,char,int)1011308QString.setNum(float,char,int)
setNum(double,char,int)21053338QString.setNum(double,char,int)
compose()23276091QString.compose()
visual(int,int)15135742171QString.visual(int,int)
QString(int,bool)7032229QString.QString(int,bool)
QString(QStringData*,bool)0011209QString.QString(QStringData*,bool)
operator=(char)2011108QCharRef.operator=(char)
operator=(uchar)2011108QCharRef.operator=(uchar)
operator=(QChar)2011108QCharRef.operator=(QChar)
operator=(constQCharRef&)2011108QCharRef.operator=(constQCharRef&)
operator=(ushort)2011108QCharRef.operator=(ushort)
operator=(short)2011108QCharRef.operator=(short)
operator=(uint)2011108QCharRef.operator=(uint)
operator=(int)2011108QCharRef.operator=(int)
operator>>(Q_INT8&)100331111QDataStream.operator>>(Q_INT8&)
operator>>(Q_UINT8&)10111011QDataStream.operator>>(Q_UINT8&)
operator>>(Q_INT16&)120321211QDataStream.operator>>(Q_INT16&)
operator>>(Q_UINT16&)10111011QDataStream.operator>>(Q_UINT16&)
operator>>(Q_INT32&)140321211QDataStream.operator>>(Q_INT32&)
operator>>(Q_UINT32&)10111011QDataStream.operator>>(Q_UINT32&)
operator>>(Q_INT64&)190431211QDataStream.operator>>(Q_INT64&)
operator>>(Q_UINT64&)10111011QDataStream.operator>>(Q_UINT64&)
operator>>(float&)140321211QDataStream.operator>>(float&)
operator>>(double&)180321211QDataStream.operator>>(double&)
operator>>(char*&)20111111QDataStream.operator>>(char*&)
operator<<(Q_INT8)120221111QDataStream.operator<<(Q_INT8)
operator<<(Q_UINT8)10111011QDataStream.operator<<(Q_UINT8)
operator<<(Q_INT16)140321311QDataStream.operator<<(Q_INT16)
operator<<(Q_UINT16)10111011QDataStream.operator<<(Q_UINT16)
operator<<(Q_INT32)160321311QDataStream.operator<<(Q_INT32)
operator<<(Q_UINT32)10111011QDataStream.operator<<(Q_UINT32)
operator<<(Q_INT64)210431311QDataStream.operator<<(Q_INT64)
operator<<(Q_UINT64)10111011QDataStream.operator<<(Q_UINT64)
operator<<(float)180331411QDataStream.operator<<(float)
operator<<(double)200321311QDataStream.operator<<(double)
operator<<(constchar*)60221111QDataStream.operator<<(constchar*)
locate(uint)341112131QGList.locate(uint)
open(int)1001305193QFile.open(int)
cleanDirPath(constQString&)421134171QDir.cleanDirPath(constQString&)
readDirEntries(constQString&,int,int)9812833341QDir.readDirEntries(constQString&,int,int)
match(constQCString&,int,int*,bool)331165461QRegExp.match(constQCString&,int,int*,bool)
compile()13923670161QRegExp.compile()
read(QDataStream&)34184162QGDict.read(QDataStream&)
clear()5721560101QGDict.clear()
resize(uint)5421251131QGDict.resize(uint)

Statistics

Stat   # lines of code (LOC)   MaxNestedLoop   Cyclomatic Complexity (CC)   NestingDepth   # Parameters   # Variables   # Overloads
Sum:27 9613207 7851 6721 0543 4312 096
Average:59.7460.6837616.6353.57262.25217.33124.4786
Minimum:0010001
Maximum:4 0544982351310125
Standard deviation:217.530.8662752.9012.97522.27510.3776.3098
Variance:47 3190.750422 7988.85165.1757107.6739.814
warningCritical    Rule warning: Methods too big
// <Name>Methods too big</Name>
warnif count > 0 from m in JustMyCode.Methods where 
   
m.NbLinesOfCode > 30 
   
orderby m.NbLinesOfCode descending
           
select new { m, m.NbLinesOfCode}

// Methods where NbLinesOfCode > 30 
// are extremely complex and should be split in smaller methods.
// See the definition of the NbLinesOfCode metric here 
// http://www.cppdepend.com/Metrics.aspx#NbLinesOfCode

266 methods matched

The following list of methods is truncated and contains only the first 100 methods of the 266 methods matched. All matched methods could be listed in the report by unchecking the option:
CppDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a CQL Rule violated
It is recommended to use the CppDepend interactive UI capabilities to browse a large list of matched methods.
methods# lines of code (LOC)Full Name
methods# lines of code (LOC)Full Name
scanYYlex()4 054CppDependencyGlobalMembers.scanYYlex()
codeYYlex()1 646CppDependencyGlobalMembers.codeYYlex()
preYYlex()1 185CppDependencyGlobalMembers.preYYlex()
doctokenizerYYlex()826CppDependencyGlobalMembers.doctokenizerYYlex()
yylex()557CppDependencyGlobalMembers.yylex()
create()427Config.create()
generateXMLForMember(MemberDef*,QTextStream&,QTextStream&,Definition* ,bool)421CppDependencyGlobalMembers.generateXMLForMember(MemberDef* ,QTextStream&,QTextStream&,Definition*,bool)
findMember(EntryNav*,QCString,bool,bool)395CppDependencyGlobalMembers.findMember(EntryNav*,QCString,bool,bool)
defargsYYlex()382CppDependencyGlobalMembers.defargsYYlex()
configYYlex()317CppDependencyGlobalMembers.configYYlex()
internalInsertMember(MemberDef*,Protection,bool)273ClassDef.internalInsertMember(MemberDef*,Protection,bool)
parseInput()245CppDependencyGlobalMembers.parseInput()
check()241Config.check()
declinfoYYlex()236CppDependencyGlobalMembers.declinfoYYlex()
cppExpYYlex()199CppDependencyGlobalMembers.cppExpYYlex()
getDefs(constQCString&,constQCString&,constchar*,MemberDef*& ,ClassDef*&,FileDef*&,NamespaceDef*&,GroupDef*&,bool,FileDef*,bool ,bool)197CppDependencyGlobalMembers.getDefs(constQCString&,constQCString& ,constchar*,MemberDef*&,ClassDef*&,FileDef*&,NamespaceDef*&,GroupDef*& ,bool,FileDef*,bool,bool)
parseEntityDecl()193QXmlSimpleReader.parseEntityDecl()
parseAttType()188QXmlSimpleReader.parseAttType()
parseContent()180QXmlSimpleReader.parseContent()
parseElementDecl()168QXmlSimpleReader.parseElementDecl()
matchstring(uint*,constchar*,uint,constchar*,bool)156qtoolsGlobalMembers.matchstring(uint*,constchar*,uint,constchar*,bool)
generateXMLForClass(ClassDef*,QTextStream&,bool,bool)154CppDependencyGlobalMembers.generateXMLForClass(ClassDef*,QTextStream& ,bool,bool)
visual(int,int)151QString.visual(int,int)
parsePI(bool)151QXmlSimpleReader.parsePI(bool)
output_int(int,ulong,bool)150QTextStream.output_int(int,ulong,bool)
sprintf(constchar*)147QString.sprintf(constchar*)
parseAttlistDecl()146QXmlSimpleReader.parseAttlistDecl()
readConfiguration(int,char**)146CppDependencyGlobalMembers.readConfiguration(int,char**)
findBases(QCString,Definition*,FileDef*,bool)144CppDependencyGlobalMembers.findBases(QCString,Definition*,FileDef* ,bool)
compile()139QRegExp.compile()
replaceFunctionMacro(constQCString&,QCString*,int,int&,constDefine* ,QCString&)138CppDependencyGlobalMembers.replaceFunctionMacro(constQCString& ,QCString*,int,int&,constDefine*,QCString&)
processReference(bool&,QXmlSimpleReader::EntityRecognitionContext)129QXmlSimpleReader.processReference(bool& ,QXmlSimpleReader::EntityRecognitionContext)
parseDoctype()126QXmlSimpleReader.parseDoctype()
ts_getbuf(QChar*,uint)125QTextStream.ts_getbuf(QChar*,uint)
parseElement()124QXmlSimpleReader.parseElement()
parseMarkupdecl()124QXmlSimpleReader.parseMarkupdecl()
generateClassOrGlobalLink(CodeOutputInterface&,char*,QCString&,bool ,bool,bool)122CppDependencyGlobalMembers.generateClassOrGlobalLink (CodeOutputInterface&,char*,QCString&,bool,bool,bool)
buildFunctionList(EntryNav*)122CppDependencyGlobalMembers.buildFunctionList(EntryNav*)
parseExternalID(bool)119QXmlSimpleReader.parseExternalID(bool)
parseProlog()117QXmlSimpleReader.parseProlog()
writeMemberList(OutputList&)117ClassDef.writeMemberList(OutputList&)
mergeMembers()111ClassDef.mergeMembers()
preprocessFile(constchar*,BufStr&,BufStr&)110CppDependencyGlobalMembers.preprocessFile(constchar*,BufStr&,BufStr&)
removeAndRebalance(QMapNodeBase*,QMapNodeBase*&,QMapNodeBase*& ,QMapNodeBase*&)109QMapPrivateBase.removeAndRebalance(QMapNodeBase*,QMapNodeBase*& ,QMapNodeBase*&,QMapNodeBase*&)
parseReference(bool&,QXmlSimpleReader::EntityRecognitionContext)107QXmlSimpleReader.parseReference(bool& ,QXmlSimpleReader::EntityRecognitionContext)
writeDefArgumentList(OutputList&,ClassDef*,constQCString&,MemberDef*)106CppDependencyGlobalMembers.writeDefArgumentList(OutputList&,ClassDef* ,constQCString&,MemberDef*)
findClassRelation(EntryNav*,Definition*,ClassDef*,BaseInfo*,QDict<int >*,FindBaseClassRelation_Mode,bool)104CppDependencyGlobalMembers.findClassRelation(EntryNav*,Definition* ,ClassDef*,BaseInfo*,QDict<int>*,FindBaseClassRelation_Mode,bool)
filterLatexString(QTextStream&,constchar*,bool,bool,bool)103CppDependencyGlobalMembers.filterLatexString(QTextStream&,constchar* ,bool,bool,bool)
writeAlphabeticalClassList(OutputList&)102CppDependencyGlobalMembers.writeAlphabeticalClassList(OutputList&)
addVariable(constQCString&,constQCString&,bool,bool)101VariableContext.addVariable(constQCString&,constQCString&,bool,bool)
open(int)100QFile.open(int)
readDirEntries(constQString&,int,int)98QDir.readDirEntries(constQString&,int,int)
parseFiles(Entry*,EntryNav*)96CppDependencyGlobalMembers.parseFiles(Entry*,EntryNav*)
addVariable(EntryNav*,int)95CppDependencyGlobalMembers.addVariable(EntryNav*,int)
escapeCharsInString(constchar*,bool)94CppDependencyGlobalMembers.escapeCharsInString(constchar*,bool)
QTextCodecFromIOD(QIODevice*)91QTextCodecFromIOD.QTextCodecFromIOD(QIODevice*)
addEnumValuesToEnums(EntryNav*)91CppDependencyGlobalMembers.addEnumValuesToEnums(EntryNav*)
findEnums(EntryNav*)87CppDependencyGlobalMembers.findEnums(EntryNav*)
getResolvedClassRec(Definition*,FileDef*,constchar*,MemberDef** ,QCString*,QCString*,bool)87CppDependencyGlobalMembers.getResolvedClassRec(Definition*,FileDef* ,constchar*,MemberDef**,QCString*,QCString*,bool)
convertCharEntitiesToUTF8(constQCString&)85CppDependencyGlobalMembers.convertCharEntitiesToUTF8(constQCString&)
findFile(constchar*,bool,bool&,bool)85CppDependencyGlobalMembers.findFile(constchar*,bool,bool&,bool)
char_val(constchar**,uint*)83qtoolsGlobalMembers.char_val(constchar**,uint*)
parseChoiceSeq()83QXmlSimpleReader.parseChoiceSeq()
findUsedClassesForClass(EntryNav*,Definition*,ClassDef*,ClassDef*,bool ,ArgumentList*,QDict<int>*)83CppDependencyGlobalMembers.findUsedClassesForClass(EntryNav* ,Definition*,ClassDef*,ClassDef*,bool,ArgumentList*,QDict<int>*)
parseNotationDecl()81QXmlSimpleReader.parseNotationDecl()
removeRedundantWhiteSpace(constQCString&)81CppDependencyGlobalMembers.removeRedundantWhiteSpace(constQCString&)
readIncludeFile(QCString&)81CppDependencyGlobalMembers.readIncludeFile(QCString&)
parseEntityValue()80QXmlSimpleReader.parseEntityValue()
linkifyText(constTextGeneratorIntf&,Definition*,FileDef*,constchar* ,constchar*,QDict<int>&,bool,bool,bool)78CppDependencyGlobalMembers.linkifyText(constTextGeneratorIntf& ,Definition*,FileDef*,constchar*,constchar*,QDict<int>&,bool,bool,bool )
addMethodToClass(EntryNav*,ClassDef*,constQCString&,bool)76CppDependencyGlobalMembers.addMethodToClass(EntryNav*,ClassDef* ,constQCString&,bool)
parseMisc()75QXmlSimpleReader.parseMisc()
writePlainDeclarations(OutputList&,ClassDef*,NamespaceDef*,FileDef* ,GroupDef*)74MemberList.writePlainDeclarations(OutputList&,ClassDef*,NamespaceDef* ,FileDef*,GroupDef*)
MD5Transform(unsignedint*,constunsignedint*)73CppDependencyGlobalMembers.MD5Transform(unsignedint*,constunsignedint* )
readCodeFragment(constchar*,int&,int&,QCString&)72CppDependencyGlobalMembers.readCodeFragment(constchar*,int&,int& ,QCString&)
CheckFileEntry(FileDef*,EntryNav*)72CppDependencyGlobalMembers.CheckFileEntry(FileDef*,EntryNav*)
getLinkInScope(constQCString&,constQCString&,constchar* ,CodeOutputInterface&,constchar*,bool)69CppDependencyGlobalMembers.getLinkInScope(constQCString& ,constQCString&,constchar*,CodeOutputInterface&,constchar*,bool)
input_double()68QTextStream.input_double()
parseAttValue()68QXmlSimpleReader.parseAttValue()
writeEnumDeclaration(OutputList&,ClassDef*,NamespaceDef*,FileDef* ,GroupDef*)68MemberDef.writeEnumDeclaration(OutputList&,ClassDef*,NamespaceDef* ,FileDef*,GroupDef*)
isVarWithConstructor(EntryNav*)67CppDependencyGlobalMembers.isVarWithConstructor(EntryNav*)
resolveRef(constchar*,constchar*,bool,Definition**,MemberDef**,bool)64CppDependencyGlobalMembers.resolveRef(constchar*,constchar*,bool ,Definition**,MemberDef**,bool)
newResolveTypedef(FileDef*,MemberDef*,MemberDef**,QCString*,QCString* ,ArgumentList*)64CppDependencyGlobalMembers.newResolveTypedef(FileDef*,MemberDef* ,MemberDef**,QCString*,QCString*,ArgumentList*)
generateXMLForFile(FileDef*,QTextStream&,bool)64CppDependencyGlobalMembers.generateXMLForFile(FileDef*,QTextStream& ,bool)
init(Definition*,constchar*,constchar*,constchar*,Protection,Specifier ,bool,Relationship,MemberDef::MemberType,constArgumentList* ,constArgumentList*)63MemberDefImpl.init(Definition*,constchar*,constchar*,constchar* ,Protection,Specifier,bool,Relationship,MemberDef::MemberType ,constArgumentList*,constArgumentList*)
dump(uint*)62qtoolsGlobalMembers.dump(uint*)
input_int()62QTextStream.input_int()
parseComment()62QXmlSimpleReader.parseComment()
parseCCode(CodeOutputInterface&,constchar*,constQCString&,bool ,constchar*,FileDef*,int,int,bool,MemberDef*)62CppDependencyGlobalMembers.parseCCode(CodeOutputInterface&,constchar* ,constQCString&,bool,constchar*,FileDef*,int,int,bool,MemberDef*)
generateXML()62CppDependencyGlobalMembers.generateXML()
getResolvedSymbol(Definition*,FileDef*,Definition*,QCString& ,ArgumentList*,int&,ClassDef*&,MemberDef*&,QCString&,QCString&)62CppDependencyGlobalMembers.getResolvedSymbol(Definition*,FileDef* ,Definition*,QCString&,ArgumentList*,int&,ClassDef*&,MemberDef*& ,QCString&,QCString&)
parseAttribute()61QXmlSimpleReader.parseAttribute()
findFileDef(constFileNameDict*,constchar*,bool&)61CppDependencyGlobalMembers.findFileDef(constFileNameDict*,constchar* ,bool&)
addVariableToFile(EntryNav*,MemberDef::MemberType,constQCString& ,constQCString&,bool,MemberDef*)61CppDependencyGlobalMembers.addVariableToFile(EntryNav* ,MemberDef::MemberType,constQCString&,constQCString&,bool,MemberDef*)
isAccessibleFromWithExpScope(Definition*,FileDef*,Definition* ,constQCString&)59CppDependencyGlobalMembers.isAccessibleFromWithExpScope(Definition* ,FileDef*,Definition*,constQCString&)
parsePEReference(QXmlSimpleReader::EntityRecognitionContext)58QXmlSimpleReader.parsePEReference (QXmlSimpleReader::EntityRecognitionContext)
trGeneratedFromFiles(ClassDef::CompoundType,bool)58TranslatorRussian.trGeneratedFromFiles(ClassDef::CompoundType,bool)
clear()57QGDict.clear()
findEndOfTemplate(constQCString&,int)56CppDependencyGlobalMembers.findEndOfTemplate(constQCString&,int)
splitKnRArg(QCString&,QCString&)55CppDependencyGlobalMembers.splitKnRArg(QCString&,QCString&)
resize(uint)54QGDict.resize(uint)

Statistics

Stat   # lines of code (LOC)
Sum:26 154
Average:98.323
Minimum:31
Maximum:4 054
Standard deviation:282.37
Variance:79 731
warningCritical    Rule warning: Methods too complex
// <Name>Methods too complex</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.CyclomaticComplexity > 20 ||
  
m.MaxNestedLoop > 3 ||
  
m.NestingDepth > 5
  
orderby m.CyclomaticComplexity descending,
          
m.MaxNestedLoop descending,
          
m.NestingDepth descending
select new { m, m.CyclomaticComplexity, 
                
m.MaxNestedLoop,
                
m.NestingDepth  }

// Methods where CyclomaticComplexity > 20 
// or MaxNestedLoop > 40
// or NestingDepth > 4
// are hard to understand and maintain
// and should be split in smaller methods.
// See the definition of the complexity metrics here:
// http://www.cppdepend.com/Metrics.aspx#CC
// http://www.cppdepend.com/Metrics.aspx#ILCC
// http://www.cppdepend.com/Metrics.aspx#ILNestingDepth

139 methods matched

The following list of methods is truncated and contains only the first 100 methods of the 139 methods matched. All matched methods could be listed in the report by unchecking the option:
CppDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a CQL Rule violated
It is recommended to use the CppDepend interactive UI capabilities to browse a large list of matched methods.
methodsCyclomatic Complexity (CC)MaxNestedLoopNestingDepthFull Name
methodsCyclomatic Complexity (CC)MaxNestedLoopNestingDepthFull Name
scanYYlex()982235CppDependencyGlobalMembers.scanYYlex()
codeYYlex()379414CppDependencyGlobalMembers.codeYYlex()
preYYlex()271211CppDependencyGlobalMembers.preYYlex()
doctokenizerYYlex()22828CppDependencyGlobalMembers.doctokenizerYYlex()
yylex()13827CppDependencyGlobalMembers.yylex()
findMember(EntryNav*,QCString,bool,bool)120112CppDependencyGlobalMembers.findMember(EntryNav*,QCString,bool,bool)
defargsYYlex()11628CppDependencyGlobalMembers.defargsYYlex()
generateXMLForMember(MemberDef*,QTextStream&,QTextStream&,Definition* ,bool)9418CppDependencyGlobalMembers.generateXMLForMember(MemberDef* ,QTextStream&,QTextStream&,Definition*,bool)
configYYlex()8527CppDependencyGlobalMembers.configYYlex()
parseEntityDecl()7916QXmlSimpleReader.parseEntityDecl()
getDefs(constQCString&,constQCString&,constchar*,MemberDef*& ,ClassDef*&,FileDef*&,NamespaceDef*&,GroupDef*&,bool,FileDef*,bool ,bool)7119CppDependencyGlobalMembers.getDefs(constQCString&,constQCString& ,constchar*,MemberDef*&,ClassDef*&,FileDef*&,NamespaceDef*&,GroupDef*& ,bool,FileDef*,bool,bool)
parseContent()7017QXmlSimpleReader.parseContent()
declinfoYYlex()6927CppDependencyGlobalMembers.declinfoYYlex()
parseAttType()6714QXmlSimpleReader.parseAttType()
internalInsertMember(MemberDef*,Protection,bool)6507ClassDef.internalInsertMember(MemberDef*,Protection,bool)
cppExpYYlex()6227CppDependencyGlobalMembers.cppExpYYlex()
parseElementDecl()5814QXmlSimpleReader.parseElementDecl()
visual(int,int)5734QString.visual(int,int)
parsePI(bool)5715QXmlSimpleReader.parsePI(bool)
matchstring(uint*,constchar*,uint,constchar*,bool)5627qtoolsGlobalMembers.matchstring(uint*,constchar*,uint,constchar*,bool)
parseAttlistDecl()5615QXmlSimpleReader.parseAttlistDecl()
check()5614Config.check()
generateClassOrGlobalLink(CodeOutputInterface&,char*,QCString&,bool ,bool,bool)4907CppDependencyGlobalMembers.generateClassOrGlobalLink (CodeOutputInterface&,char*,QCString&,bool,bool,bool)
findBases(QCString,Definition*,FileDef*,bool)4829CppDependencyGlobalMembers.findBases(QCString,Definition*,FileDef* ,bool)
parseDoctype()4815QXmlSimpleReader.parseDoctype()
parseMarkupdecl()4815QXmlSimpleReader.parseMarkupdecl()
parseElement()4715QXmlSimpleReader.parseElement()
replaceFunctionMacro(constQCString&,QCString*,int,int&,constDefine* ,QCString&)4428CppDependencyGlobalMembers.replaceFunctionMacro(constQCString& ,QCString*,int,int&,constDefine*,QCString&)
parseProlog()4216QXmlSimpleReader.parseProlog()
ts_getbuf(QChar*,uint)4126QTextStream.ts_getbuf(QChar*,uint)
sprintf(constchar*)4116QString.sprintf(constchar*)
generateXMLForClass(ClassDef*,QTextStream&,bool,bool)3915CppDependencyGlobalMembers.generateXMLForClass(ClassDef*,QTextStream& ,bool,bool)
buildFunctionList(EntryNav*)38112CppDependencyGlobalMembers.buildFunctionList(EntryNav*)
findClassRelation(EntryNav*,Definition*,ClassDef*,BaseInfo*,QDict<int >*,FindBaseClassRelation_Mode,bool)3807CppDependencyGlobalMembers.findClassRelation(EntryNav*,Definition* ,ClassDef*,BaseInfo*,QDict<int>*,FindBaseClassRelation_Mode,bool)
mergeMembers()36411ClassDef.mergeMembers()
compile()3627QRegExp.compile()
addVariable(EntryNav*,int)3616CppDependencyGlobalMembers.addVariable(EntryNav*,int)
parseExternalID(bool)3614QXmlSimpleReader.parseExternalID(bool)
writeMemberList(OutputList&)3536ClassDef.writeMemberList(OutputList&)
filterLatexString(QTextStream&,constchar*,bool,bool,bool)3516CppDependencyGlobalMembers.filterLatexString(QTextStream&,constchar* ,bool,bool,bool)
readConfiguration(int,char**)3315CppDependencyGlobalMembers.readConfiguration(int,char**)
writePlainDeclarations(OutputList&,ClassDef*,NamespaceDef*,FileDef* ,GroupDef*)3228MemberList.writePlainDeclarations(OutputList&,ClassDef*,NamespaceDef* ,FileDef*,GroupDef*)
parseReference(bool&,QXmlSimpleReader::EntityRecognitionContext)3214QXmlSimpleReader.parseReference(bool& ,QXmlSimpleReader::EntityRecognitionContext)
parseInput()3214CppDependencyGlobalMembers.parseInput()
QTextCodecFromIOD(QIODevice*)3038QTextCodecFromIOD.QTextCodecFromIOD(QIODevice*)
processReference(bool&,QXmlSimpleReader::EntityRecognitionContext)3017QXmlSimpleReader.processReference(bool& ,QXmlSimpleReader::EntityRecognitionContext)
removeAndRebalance(QMapNodeBase*,QMapNodeBase*&,QMapNodeBase*& ,QMapNodeBase*&)3016QMapPrivateBase.removeAndRebalance(QMapNodeBase*,QMapNodeBase*& ,QMapNodeBase*&,QMapNodeBase*&)
open(int)3015QFile.open(int)
parseNotationDecl()2915QXmlSimpleReader.parseNotationDecl()
writeDefArgumentList(OutputList&,ClassDef*,constQCString&,MemberDef*)2914CppDependencyGlobalMembers.writeDefArgumentList(OutputList&,ClassDef* ,constQCString&,MemberDef*)
getLinkInScope(constQCString&,constQCString&,constchar* ,CodeOutputInterface&,constchar*,bool)2907CppDependencyGlobalMembers.getLinkInScope(constQCString& ,constQCString&,constchar*,CodeOutputInterface&,constchar*,bool)
addEnumValuesToEnums(EntryNav*)28313CppDependencyGlobalMembers.addEnumValuesToEnums(EntryNav*)
parseMisc()2815QXmlSimpleReader.parseMisc()
isVarWithConstructor(EntryNav*)2815CppDependencyGlobalMembers.isVarWithConstructor(EntryNav*)
parseEntityValue()2814QXmlSimpleReader.parseEntityValue()
escapeCharsInString(constchar*,bool)2814CppDependencyGlobalMembers.escapeCharsInString(constchar*,bool)
readDirEntries(constQString&,int,int)2813QDir.readDirEntries(constQString&,int,int)
writeAlphabeticalClassList(OutputList&)2726CppDependencyGlobalMembers.writeAlphabeticalClassList(OutputList&)
isAccessibleFromWithExpScope(Definition*,FileDef*,Definition* ,constQCString&)2719CppDependencyGlobalMembers.isAccessibleFromWithExpScope(Definition* ,FileDef*,Definition*,constQCString&)
parseChoiceSeq()2714QXmlSimpleReader.parseChoiceSeq()
findUsedClassesForClass(EntryNav*,Definition*,ClassDef*,ClassDef*,bool ,ArgumentList*,QDict<int>*)26410CppDependencyGlobalMembers.findUsedClassesForClass(EntryNav* ,Definition*,ClassDef*,ClassDef*,bool,ArgumentList*,QDict<int>*)
linkifyText(constTextGeneratorIntf&,Definition*,FileDef*,constchar* ,constchar*,QDict<int>&,bool,bool,bool)2626CppDependencyGlobalMembers.linkifyText(constTextGeneratorIntf& ,Definition*,FileDef*,constchar*,constchar*,QDict<int>&,bool,bool,bool )
removeRedundantWhiteSpace(constQCString&)2525CppDependencyGlobalMembers.removeRedundantWhiteSpace(constQCString&)
output_int(int,ulong,bool)2514QTextStream.output_int(int,ulong,bool)
addVariable(constQCString&,constQCString&,bool,bool)2504VariableContext.addVariable(constQCString&,constQCString&,bool,bool)
readIncludeFile(QCString&)2417CppDependencyGlobalMembers.readIncludeFile(QCString&)
newResolveTypedef(FileDef*,MemberDef*,MemberDef**,QCString*,QCString* ,ArgumentList*)2414CppDependencyGlobalMembers.newResolveTypedef(FileDef*,MemberDef* ,MemberDef**,QCString*,QCString*,ArgumentList*)
addMethodToClass(EntryNav*,ClassDef*,constQCString&,bool)2405CppDependencyGlobalMembers.addMethodToClass(EntryNav*,ClassDef* ,constQCString&,bool)
findEnums(EntryNav*)2405CppDependencyGlobalMembers.findEnums(EntryNav*)
parseFiles(Entry*,EntryNav*)23210CppDependencyGlobalMembers.parseFiles(Entry*,EntryNav*)
generateMemberLink(CodeOutputInterface&,constQCString&,char*)2219CppDependencyGlobalMembers.generateMemberLink(CodeOutputInterface& ,constQCString&,char*)
parseAttValue()2214QXmlSimpleReader.parseAttValue()
zed(char)2202TranslatorHungarian.zed(char)
addIncludedUsingDirectives()2128FileDef.addIncludedUsingDirectives()
transferFunctionReferences()2127CppDependencyGlobalMembers.transferFunctionReferences()
dump(uint*)2125qtoolsGlobalMembers.dump(uint*)
preprocessFile(constchar*,BufStr&,BufStr&)2125CppDependencyGlobalMembers.preprocessFile(constchar*,BufStr&,BufStr&)
findFile(constchar*,bool,bool&,bool)2117CppDependencyGlobalMembers.findFile(constchar*,bool,bool&,bool)
parsePEReference(QXmlSimpleReader::EntityRecognitionContext)2116QXmlSimpleReader.parsePEReference (QXmlSimpleReader::EntityRecognitionContext)
input_double()2115QTextStream.input_double()
findEndOfTemplate(constQCString&,int)2114CppDependencyGlobalMembers.findEndOfTemplate(constQCString&,int)
resolveTypeDef(Definition*,constQCString&,Definition**)2037CppDependencyGlobalMembers.resolveTypeDef(Definition*,constQCString& ,Definition**)
readCodeFragment(constchar*,int&,int&,QCString&)2027CppDependencyGlobalMembers.readCodeFragment(constchar*,int&,int& ,QCString&)
char_val(constchar**,uint*)2017qtoolsGlobalMembers.char_val(constchar**,uint*)
writeEnumDeclaration(OutputList&,ClassDef*,NamespaceDef*,FileDef* ,GroupDef*)1816MemberDef.writeEnumDeclaration(OutputList&,ClassDef*,NamespaceDef* ,FileDef*,GroupDef*)
getResolvedSymbol(Definition*,FileDef*,Definition*,QCString& ,ArgumentList*,int&,ClassDef*&,MemberDef*&,QCString&,QCString&)18011CppDependencyGlobalMembers.getResolvedSymbol(Definition*,FileDef* ,Definition*,QCString&,ArgumentList*,int&,ClassDef*&,MemberDef*& ,QCString&,QCString&)
isAccessibleFrom(Definition*,FileDef*,Definition*)1806CppDependencyGlobalMembers.isAccessibleFrom(Definition*,FileDef* ,Definition*)
removeIdsAndMarkers(constchar*)1727CppDependencyGlobalMembers.removeIdsAndMarkers(constchar*)
findsymbolsInTemplate(QCString,Definition*,FileDef*)1726CppDependencyGlobalMembers.findsymbolsInTemplate(QCString,Definition* ,FileDef*)
findFileDef(constFileNameDict*,constchar*,bool&)1716CppDependencyGlobalMembers.findFileDef(constFileNameDict*,constchar* ,bool&)
setCallContextForVar(constQCString&)1716CppDependencyGlobalMembers.setCallContextForVar(constQCString&)
transferFunctionDocumentation()16310CppDependencyGlobalMembers.transferFunctionDocumentation()
findUsingDirectives(EntryNav*)1616CppDependencyGlobalMembers.findUsingDirectives(EntryNav*)
readFileOrDirectory(constchar*,FileNameList*,FileNameDict*,StringDict* ,QStrList*,QStrList*,StringList*,StringDict*,bool,bool,QDict<void>*)1609CppDependencyGlobalMembers.readFileOrDirectory(constchar* ,FileNameList*,FileNameDict*,StringDict*,QStrList*,QStrList* ,StringList*,StringDict*,bool,bool,QDict<void>*)
removeMarkers(constchar*)1527CppDependencyGlobalMembers.removeMarkers(constchar*)
clear()1526QGDict.clear()
generateDiskNames()1526FileName.generateDiskNames()
writeDeclaration(OutputList&,constClassDef::CompoundType*,constchar* ,bool)1517ClassSDict.writeDeclaration(OutputList&,constClassDef::CompoundType* ,constchar*,bool)
generateClassMemberLink(CodeOutputInterface&,ClassDef*,constchar*)1516CppDependencyGlobalMembers.generateClassMemberLink (CodeOutputInterface&,ClassDef*,constchar*)
substEnvVarsInStrList(QStrList&)1438CppDependencyGlobalMembers.substEnvVarsInStrList(QStrList&)

Statistics

Stat   Cyclomatic Complexity (CC)   MaxNestedLoop   NestingDepth
Sum:5 733207947
Average:41.2451.48926.8129
Minimum:502
Maximum:982435
Standard deviation:92.1680.876283.1545
Variance:8 4940.767879.9506
warningCritical    Rule warning: Methods potentially poorly commented
// <Name>Methods potentially poorly commented</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.PercentageComment < 20 && 
  
m.NbLinesOfCode > 20  
  
orderby m.PercentageComment ascending
select new { m, m.PercentageComment, m.NbLinesOfCode, m.NbLinesOfComment }

// Methods where %Comment < 20 and that have 
// at least 20 lines of code might need to be more commented.
// See the definition of the Comments metric here 
// http://www.cppdepend.com/Metrics.aspx#PercentageComment
// http://www.cppdepend.com/Metrics.aspx#NbLinesOfComment 

206 methods matched

The following list of methods is truncated and contains only the first 100 methods of the 206 methods matched. All matched methods could be listed in the report by unchecking the option:
CppDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a CQL Rule violated
It is recommended to use the CppDepend interactive UI capabilities to browse a large list of matched methods.
methodsPercentage Comment# lines of code (LOC)# lines of commentFull Name
methodsPercentage Comment# lines of code (LOC)# lines of commentFull Name
resize(uint)0210QGString.resize(uint)
enlarge(uint)0210QGString.enlarge(uint)
rebalance(QMapNodeBase*,QMapNodeBase*&)0310QMapPrivateBase.rebalance(QMapNodeBase*,QMapNodeBase*&)
removeAndRebalance(QMapNodeBase*,QMapNodeBase*&,QMapNodeBase*& ,QMapNodeBase*&)01091QMapPrivateBase.removeAndRebalance(QMapNodeBase*,QMapNodeBase*& ,QMapNodeBase*&,QMapNodeBase*&)
fromUnicode(constQString&,int&)0350QSimpleTextCodec.fromUnicode(constQString&,int&)
addClassMemberNameToIndex(MemberDef*)0360CppDependencyGlobalMembers.addClassMemberNameToIndex(MemberDef*)
addFileMemberNameToIndex(MemberDef*)0260CppDependencyGlobalMembers.addFileMemberNameToIndex(MemberDef*)
addNamespaceMemberNameToIndex(MemberDef*)0230CppDependencyGlobalMembers.addNamespaceMemberNameToIndex(MemberDef*)
convertCharEntitiesToUTF8(constQCString&)0850CppDependencyGlobalMembers.convertCharEntitiesToUTF8(constQCString&)
generateDEF()0430CppDependencyGlobalMembers.generateDEF()
startQuickIndexItem(OutputList&,constchar*,bool,bool,bool&)0210CppDependencyGlobalMembers.startQuickIndexItem(OutputList&,constchar* ,bool,bool,bool&)
resolveTrigraph(char)0210CppDependencyGlobalMembers.resolveTrigraph(char)
ResolveBestClass(FileDef*,ClassDef*&,MemberDef*&,QCString&,QDict<int>* )0260CppDependencyGlobalMembers.ResolveBestClass(FileDef*,ClassDef*& ,MemberDef*&,QCString&,QDict<int>*)
subtituteTemplate(QCString,QDict<QCString>*)0250CppDependencyGlobalMembers.subtituteTemplate(QCString,QDict<QCString>* )
GetInheritanceDepth(ClassDef*,int&,ClassDef*,bool)0220CppDependencyGlobalMembers.GetInheritanceDepth(ClassDef*,int& ,ClassDef*,bool)
generateXMLForExternal()0290CppDependencyGlobalMembers.generateXMLForExternal()
writeIncludeFiles(OutputList&)0330ClassDef.writeIncludeFiles(OutputList&)
writeDetailedDescription(OutputList&,constQCString&)0250NamespaceDef.writeDetailedDescription(OutputList&,constQCString&)
memberTypeName()0280MemberDef.memberTypeName()
zed(char)0240TranslatorHungarian.zed(char)
XmlSectionMapper()0350XmlSectionMapper.XmlSectionMapper()
dump(uint*)1621qtoolsGlobalMembers.dump(uint*)
escapeCharsInString(constchar*,bool)1941CppDependencyGlobalMembers.escapeCharsInString(constchar*,bool)
findFile(constchar*,bool,bool&,bool)1851CppDependencyGlobalMembers.findFile(constchar*,bool,bool&,bool)
writeDocumentation(OutputList&)1501ClassDef.writeDocumentation(OutputList&)
trCompoundReferenceFortran(constchar*,ClassDef::CompoundType,bool)1511TranslatorRussian.trCompoundReferenceFortran(constchar* ,ClassDef::CompoundType,bool)
CheckFileEntry(FileDef*,EntryNav*)2722CppDependencyGlobalMembers.CheckFileEntry(FileDef*,EntryNav*)
stringize(constQCString&)2401CppDependencyGlobalMembers.stringize(constQCString&)
writeXMLCodeString(QTextStream&,constchar*,int&)2381CppDependencyGlobalMembers.writeXMLCodeString(QTextStream&,constchar* ,int&)
writeListOfAllMembers(ClassDef*,QTextStream&)2481CppDependencyGlobalMembers.writeListOfAllMembers(ClassDef* ,QTextStream&)
unlink_string(constQString&,QCollection::Item)3251QGDict.unlink_string(constQString&,QCollection::Item)
QTextCodecFromIOD(QIODevice*)3913QTextCodecFromIOD.QTextCodecFromIOD(QIODevice*)
fromUnicode(constQString&,int&)3251QTextCodecFromIOD.fromUnicode(constQString&,int&)
readConfiguration(int,char**)31466CppDependencyGlobalMembers.readConfiguration(int,char**)
findFileDef(constFileNameDict*,constchar*,bool&)3612CppDependencyGlobalMembers.findFileDef(constFileNameDict*,constchar* ,bool&)
argListToString(ArgumentList*,bool)3291CppDependencyGlobalMembers.argListToString(ArgumentList*,bool)
convertToXML(constchar*)3271CppDependencyGlobalMembers.convertToXML(constchar*)
writeQuickMemberLinks(OutputList&,MemberDef*)3271ClassDef.writeQuickMemberLinks(OutputList&,MemberDef*)
writeQuickMemberLinks(OutputList&,MemberDef*)3251FileDef.writeQuickMemberLinks(OutputList&,MemberDef*)
writeSource(OutputList&)3301FileDef.writeSource(OutputList&)
trCompoundReferenceFortran(constchar*,ClassDef::CompoundType,bool)3271TranslatorEnglish.trCompoundReferenceFortran(constchar* ,ClassDef::CompoundType,bool)
trCompoundReferenceFortran(constchar*,ClassDef::CompoundType,bool)3271TranslatorDutch.trCompoundReferenceFortran(constchar* ,ClassDef::CompoundType,bool)
trCompoundReferenceFortran(constchar*,ClassDef::CompoundType,bool)3311TranslatorCzech.trCompoundReferenceFortran(constchar* ,ClassDef::CompoundType,bool)
trCompoundReferenceFortran(constchar*,ClassDef::CompoundType,bool)3291TranslatorItalian.trCompoundReferenceFortran(constchar* ,ClassDef::CompoundType,bool)
trCompoundReferenceFortran(constchar*,ClassDef::CompoundType,bool)3281TranslatorGerman.trCompoundReferenceFortran(constchar* ,ClassDef::CompoundType,bool)
trCompoundReferenceFortran(constchar*,ClassDef::CompoundType,bool)3291TranslatorSpanish.trCompoundReferenceFortran(constchar* ,ClassDef::CompoundType,bool)
trCompoundReferenceFortran(constchar*,ClassDef::CompoundType,bool)3271TranslatorCroatian.trCompoundReferenceFortran(constchar* ,ClassDef::CompoundType,bool)
trCompoundReferenceFortran(constchar*,ClassDef::CompoundType,bool)3271TranslatorKorean.trCompoundReferenceFortran(constchar* ,ClassDef::CompoundType,bool)
trCompoundReferenceFortran(constchar*,ClassDef::CompoundType,bool)3271TranslatorChinesetraditional.trCompoundReferenceFortran(constchar* ,ClassDef::CompoundType,bool)
trCompoundReferenceFortran(constchar*,ClassDef::CompoundType,bool)3311TranslatorBrazilian.trCompoundReferenceFortran(constchar* ,ClassDef::CompoundType,bool)
trCompoundReferenceFortran(constchar*,ClassDef::CompoundType,bool)3301TranslatorSerbian.trCompoundReferenceFortran(constchar* ,ClassDef::CompoundType,bool)
trCompoundReferenceFortran(constchar*,ClassDef::CompoundType,bool)3271TranslatorCatalan.trCompoundReferenceFortran(constchar* ,ClassDef::CompoundType,bool)
trCompoundReferenceFortran(constchar*,ClassDef::CompoundType,bool)3271TranslatorPersian.trCompoundReferenceFortran(constchar* ,ClassDef::CompoundType,bool)
insert_other(constchar*,QCollection::Item,int,int)4221QGCache.insert_other(constchar*,QCollection::Item,int,int)
toUnicode(constchar*,int)4221QUtf8Decoder.toUnicode(constchar*,int)
toUnicode(constchar*,int)4241QUtf16Decoder.toUnicode(constchar*,int)
findBases(QCString,Definition*,FileDef*,bool)41447CppDependencyGlobalMembers.findBases(QCString,Definition*,FileDef* ,bool)
transcodeCharacterStringToUTF8(constQCString&)4241CppDependencyGlobalMembers.transcodeCharacterStringToUTF8 (constQCString&)
recodeString(constQCString&,constchar*,constchar*)4241CppDependencyGlobalMembers.recodeString(constQCString&,constchar* ,constchar*)
configStringRecode(constQCString&,constchar*,constchar*)4241CppDependencyGlobalMembers.configStringRecode(constQCString& ,constchar*,constchar*)
transcodeCharacterBuffer(BufStr&,int,constchar*,constchar*)4241CppDependencyGlobalMembers.transcodeCharacterBuffer(BufStr&,int ,constchar*,constchar*)
writeQuickMemberIndex(OutputList&,MemberIndexList*,int,QCString,bool)4211CppDependencyGlobalMembers.writeQuickMemberIndex(OutputList& ,MemberIndexList*,int,QCString,bool)
transcodeCharacterBuffer(constchar*,BufStr&,int,constchar*,constchar*)4241CppDependencyGlobalMembers.transcodeCharacterBuffer(constchar*,BufStr& ,int,constchar*,constchar*)
init(constchar*,constchar*,constQCString&,constchar*)4402ClassDefImpl.init(constchar*,constchar*,constQCString&,constchar*)
trCompoundMembersDescription(bool)4231TranslatorItalian.trCompoundMembersDescription(bool)
trCompoundMembersDescription(bool)4231TranslatorRomanian.trCompoundMembersDescription(bool)
trCompoundMembersDescription(bool)4211TranslatorBrazilian.trCompoundMembersDescription(bool)
qt_cmp_si(constvoid*,constvoid*)5362qtoolsGlobalMembers.qt_cmp_si(constvoid*,constvoid*)
stripClassName(constchar*,MemberDef*)5372CppDependencyGlobalMembers.stripClassName(constchar*,MemberDef*)
extractTrailingComment(constchar*)5342CppDependencyGlobalMembers.extractTrailingComment(constchar*)
compoundTypeString()5372ClassDef.compoundTypeString()
insertMember(MemberDef*)5322NamespaceDef.insertMember(MemberDef*)
writeEnumDeclaration(OutputList&,ClassDef*,NamespaceDef*,FileDef* ,GroupDef*)5684MemberDef.writeEnumDeclaration(OutputList&,ClassDef*,NamespaceDef* ,FileDef*,GroupDef*)
readDirEntries(constQString&,int,int)6987QDir.readDirEntries(constQString&,int,int)
input_int()6624QTextStream.input_int()
convertToHtml(constchar*,bool)6403CppDependencyGlobalMembers.convertToHtml(constchar*,bool)
parseCCode(CodeOutputInterface&,constchar*,constQCString&,bool ,constchar*,FileDef*,int,int,bool,MemberDef*)6624CppDependencyGlobalMembers.parseCCode(CodeOutputInterface&,constchar* ,constQCString&,bool,constchar*,FileDef*,int,int,bool,MemberDef*)
tokToString(int)6272CppDependencyGlobalMembers.tokToString(int)
MD5Transform(unsignedint*,constunsignedint*)6735CppDependencyGlobalMembers.MD5Transform(unsignedint*,constunsignedint* )
qualifiedNameWithTemplateParameters(QList<ArgumentList>*)6282ClassDef.qualifiedNameWithTemplateParameters(QList<ArgumentList>*)
writeDeclaration(OutputList&,constchar*,bool)6413NamespaceSDict.writeDeclaration(OutputList&,constchar*,bool)
GetIDLSign()6302MemberDef.GetIDLSign()
filterLatexString(QTextStream&,constchar*,bool,bool,bool)71038CppDependencyGlobalMembers.filterLatexString(QTextStream&,constchar* ,bool,bool,bool)
trCompoundReference(constchar*,ClassDef::CompoundType,bool)7534TranslatorRussian.trCompoundReference(constchar* ,ClassDef::CompoundType,bool)
trCompoundReference(constchar*,ClassDef::CompoundType,bool)7534TranslatorUkrainian.trCompoundReference(constchar* ,ClassDef::CompoundType,bool)
output_int(int,ulong,bool)815014QTextStream.output_int(int,ulong,bool)
assigncast(char*)8222CppDependencyGlobalMembers.assigncast(char*)
usage(constchar*)8232CppDependencyGlobalMembers.usage(constchar*)
readDictionary()8222CppDependencyGlobalMembers.readDictionary()
internalInsertMember(MemberDef*,Protection,bool)827326ClassDef.internalInsertMember(MemberDef*,Protection,bool)
hash(void*)8212ObjCache.hash(void*)
findBasesForClasses(ClassDef*,QDict<QCString>*,Definition*,FileDef*)9283CppDependencyGlobalMembers.findBasesForClasses(ClassDef*,QDict <QCString>*,Definition*,FileDef*)
generateClassMemberLink(CodeOutputInterface&,ClassDef*,constchar*)9374CppDependencyGlobalMembers.generateClassMemberLink (CodeOutputInterface&,ClassDef*,constchar*)
configFileToString(constchar*)9404CppDependencyGlobalMembers.configFileToString(constchar*)
getLinkInScope(constQCString&,constQCString&,constchar* ,CodeOutputInterface&,constchar*,bool)10698CppDependencyGlobalMembers.getLinkInScope(constQCString& ,constQCString&,constchar*,CodeOutputInterface&,constchar*,bool)
scanYYlex()104 054476CppDependencyGlobalMembers.scanYYlex()
parseMain(constchar*,constchar*,Entry*)10425CppDependencyGlobalMembers.parseMain(constchar*,constchar*,Entry*)
writeDeclaration(OutputList&,constClassDef::CompoundType*,constchar* ,bool)10536ClassSDict.writeDeclaration(OutputList&,constClassDef::CompoundType* ,constchar*,bool)
Entry(constEntry&)10445Entry.Entry(constEntry&)
createSubtreeIndex(EntryNav*,FileStorage*,FileDef*,int&)10253Entry.createSubtreeIndex(EntryNav*,FileStorage*,FileDef*,int&)

Statistics

Stat   Percentage Comment   # lines of code (LOC)   # lines of comment
Sum:1 89118 1412 314
Average:9.179688.06311.233
Minimum:0210
Maximum:194 054476
Standard deviation:5.9023320.2840.813
Variance:34.837102 5781 665
warningCritical    Rule warning: Methods with too many parameters
// <Name>Methods with too many parameters</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.NbParameters > 5 
  
orderby m.NbParameters descending
select new { m, m.NbParameters }

// Methods where NbParameters > 5 might be painful to call 
// and might degrade performance. You should prefer using 
// additional properties/fields to the declaring type to 
// handle numerous states. Another alternative is to provide 
// a class or structure dedicated to handle arguments passing 
// (for example see the class System.Diagnostics.ProcessStartInfo 
// and the method System.Diagnostics.Process.Start(ProcessStartInfo))
// See the definition of the NbParameters metric here 
// http://www.cppdepend.com/Metrics.aspx#NbParameters

47 methods matched

methods# ParametersFull Name
methods# ParametersFull Name
MemberDef(constchar*,int,constchar*,constchar*,constchar*,constchar* ,Protection,Specifier,bool,Relationship,MemberDef::MemberType ,constArgumentList*,constArgumentList*)13MemberDef.MemberDef(constchar*,int,constchar*,constchar*,constchar* ,constchar*,Protection,Specifier,bool,Relationship ,MemberDef::MemberType,constArgumentList*,constArgumentList*)
Init(constchar*,int,constchar*,constchar*,constchar*,constchar* ,Protection,Specifier,bool,Relationship,MemberDef::MemberType ,constArgumentList*,constArgumentList*)13MemberDef.Init(constchar*,int,constchar*,constchar*,constchar* ,constchar*,Protection,Specifier,bool,Relationship ,MemberDef::MemberType,constArgumentList*,constArgumentList*)
getDefs(constQCString&,constQCString&,constchar*,MemberDef*& ,ClassDef*&,FileDef*&,NamespaceDef*&,GroupDef*&,bool,FileDef*,bool ,bool)12CppDependencyGlobalMembers.getDefs(constQCString&,constQCString& ,constchar*,MemberDef*&,ClassDef*&,FileDef*&,NamespaceDef*&,GroupDef*& ,bool,FileDef*,bool,bool)
readFileOrDirectory(constchar*,FileNameList*,FileNameDict*,StringDict* ,QStrList*,QStrList*,StringList*,StringDict*,bool,bool,QDict<void>*)11CppDependencyGlobalMembers.readFileOrDirectory(constchar* ,FileNameList*,FileNameDict*,StringDict*,QStrList*,QStrList* ,StringList*,StringDict*,bool,bool,QDict<void>*)
readDir(QFileInfo*,FileNameList*,FileNameDict*,StringDict*,QStrList* ,QStrList*,StringList*,StringDict*,bool,bool,QDict<void>*)11CppDependencyGlobalMembers.readDir(QFileInfo*,FileNameList* ,FileNameDict*,StringDict*,QStrList*,QStrList*,StringList*,StringDict* ,bool,bool,QDict<void>*)
init(Definition*,constchar*,constchar*,constchar*,Protection,Specifier ,bool,Relationship,MemberDef::MemberType,constArgumentList* ,constArgumentList*)11MemberDefImpl.init(Definition*,constchar*,constchar*,constchar* ,Protection,Specifier,bool,Relationship,MemberDef::MemberType ,constArgumentList*,constArgumentList*)
parseCCode(CodeOutputInterface&,constchar*,constQCString&,bool ,constchar*,FileDef*,int,int,bool,MemberDef*)10CppDependencyGlobalMembers.parseCCode(CodeOutputInterface&,constchar* ,constQCString&,bool,constchar*,FileDef*,int,int,bool,MemberDef*)
getResolvedSymbol(Definition*,FileDef*,Definition*,QCString& ,ArgumentList*,int&,ClassDef*&,MemberDef*&,QCString&,QCString&)10CppDependencyGlobalMembers.getResolvedSymbol(Definition*,FileDef* ,Definition*,QCString&,ArgumentList*,int&,ClassDef*&,MemberDef*& ,QCString&,QCString&)
parseDoc(constchar*,int,Definition*,MemberDef*,constQCString&,bool ,bool,constchar*,bool,bool)10OutputList.parseDoc(constchar*,int,Definition*,MemberDef* ,constQCString&,bool,bool,constchar*,bool,bool)
parseCode(CodeOutputInterface&,constchar*,constQCString&,bool ,constchar*,FileDef*,int,int,bool,MemberDef*)10ParserInterface.parseCode(CodeOutputInterface&,constchar* ,constQCString&,bool,constchar*,FileDef*,int,int,bool,MemberDef*)
parseCode(CodeOutputInterface&,constchar*,constQCString&,bool ,constchar*,FileDef*,int,int,bool,MemberDef*)10CLanguageScanner.parseCode(CodeOutputInterface&,constchar* ,constQCString&,bool,constchar*,FileDef*,int,int,bool,MemberDef*)
linkifyText(constTextGeneratorIntf&,Definition*,FileDef*,constchar* ,constchar*,QDict<int>&,bool,bool,bool)9CppDependencyGlobalMembers.linkifyText(constTextGeneratorIntf& ,Definition*,FileDef*,constchar*,constchar*,QDict<int>&,bool,bool,bool )
getResolvedClass(Definition*,FileDef*,constchar*,MemberDef**,QCString* ,bool,bool,QCString*,bool)9CppDependencyGlobalMembers.getResolvedClass(Definition*,FileDef* ,constchar*,MemberDef**,QCString*,bool,bool,QCString*,bool)
addRelatedPage(constchar*,constQCString&,constQCString&,QList <SectionInfo>*,constchar*,int,constQList<ListItemInfo>*,GroupDef* ,TagInfo*)9CppDependencyGlobalMembers.addRelatedPage(constchar*,constQCString& ,constQCString&,QList<SectionInfo>*,constchar*,int,constQList <ListItemInfo>*,GroupDef*,TagInfo*)
parseFuncDecl(constQCString&,bool,QCString&,QCString&,QCString& ,QCString&,QCString&,QCString&)8CppDependencyGlobalMembers.parseFuncDecl(constQCString&,bool,QCString& ,QCString&,QCString&,QCString&,QCString&,QCString&)
addVariableToClass(EntryNav*,ClassDef*,MemberDef::MemberType ,constQCString&,bool,MemberDef*,Protection,Relationship)8CppDependencyGlobalMembers.addVariableToClass(EntryNav*,ClassDef* ,MemberDef::MemberType,constQCString&,bool,MemberDef*,Protection ,Relationship)
findBaseClassesForClass(EntryNav*,Definition*,ClassDef*,ClassDef* ,FindBaseClassRelation_Mode,bool,ArgumentList*,QDict<int>*)8CppDependencyGlobalMembers.findBaseClassesForClass(EntryNav* ,Definition*,ClassDef*,ClassDef*,FindBaseClassRelation_Mode,bool ,ArgumentList*,QDict<int>*)
generateXMLSection(Definition*,QTextStream&,QTextStream&,MemberList* ,constchar*,bool,constchar*,constchar*)8CppDependencyGlobalMembers.generateXMLSection(Definition*,QTextStream& ,QTextStream&,MemberList*,constchar*,bool,constchar*,constchar*)
writeDeclarations(OutputList&,ClassDef*,NamespaceDef*,FileDef* ,GroupDef*,constchar*,constchar*,bool)8MemberList.writeDeclarations(OutputList&,ClassDef*,NamespaceDef* ,FileDef*,GroupDef*,constchar*,constchar*,bool)
matchArguments2(Definition*,FileDef*,ArgumentList*,Definition* ,FileDef*,ArgumentList*,bool)7CppDependencyGlobalMembers.matchArguments2(Definition*,FileDef* ,ArgumentList*,Definition*,FileDef*,ArgumentList*,bool)
writeMultiLineCodeLink(CodeOutputInterface&,constchar*,constchar* ,constchar*,constchar*,constchar*,MemberDef*)7CppDependencyGlobalMembers.writeMultiLineCodeLink(CodeOutputInterface& ,constchar*,constchar*,constchar*,constchar*,constchar*,MemberDef*)
findClassRelation(EntryNav*,Definition*,ClassDef*,BaseInfo*,QDict<int >*,FindBaseClassRelation_Mode,bool)7CppDependencyGlobalMembers.findClassRelation(EntryNav*,Definition* ,ClassDef*,BaseInfo*,QDict<int>*,FindBaseClassRelation_Mode,bool)
findUsedClassesForClass(EntryNav*,Definition*,ClassDef*,ClassDef*,bool ,ArgumentList*,QDict<int>*)7CppDependencyGlobalMembers.findUsedClassesForClass(EntryNav* ,Definition*,ClassDef*,ClassDef*,bool,ArgumentList*,QDict<int>*)
getResolvedClassRec(Definition*,FileDef*,constchar*,MemberDef** ,QCString*,QCString*,bool)7CppDependencyGlobalMembers.getResolvedClassRec(Definition*,FileDef* ,constchar*,MemberDef**,QCString*,QCString*,bool)
ClassDef(constchar*,int,constchar*,ClassDef::CompoundType,constchar* ,constchar*,bool)7ClassDef.ClassDef(constchar*,int,constchar*,ClassDef::CompoundType ,constchar*,constchar*,bool)
foreach<A1,A2,A3,A4,A5,A6>(void(IndexIntf::*)(A1,A2,A3,A4,A5,A6),A1,A2 ,A3,A4,A5,A6)7IndexList.foreach<A1,A2,A3,A4,A5,A6>(void(IndexIntf::*)(A1,A2,A3,A4,A5 ,A6),A1,A2,A3,A4,A5,A6)
startFile(OutputList&,constchar*,constchar*,constchar*,HighlightedItem ,bool)6CppDependencyGlobalMembers.startFile(OutputList&,constchar*,constchar* ,constchar*,HighlightedItem,bool)
resolveRef(constchar*,constchar*,bool,Definition**,MemberDef**,bool)6CppDependencyGlobalMembers.resolveRef(constchar*,constchar*,bool ,Definition**,MemberDef**,bool)
newResolveTypedef(FileDef*,MemberDef*,MemberDef**,QCString*,QCString* ,ArgumentList*)6CppDependencyGlobalMembers.newResolveTypedef(FileDef*,MemberDef* ,MemberDef**,QCString*,QCString*,ArgumentList*)
getLinkInScope(constQCString&,constQCString&,constchar* ,CodeOutputInterface&,constchar*,bool)6CppDependencyGlobalMembers.getLinkInScope(constQCString& ,constQCString&,constchar*,CodeOutputInterface&,constchar*,bool)
generateClassOrGlobalLink(CodeOutputInterface&,char*,QCString&,bool ,bool,bool)6CppDependencyGlobalMembers.generateClassOrGlobalLink (CodeOutputInterface&,char*,QCString&,bool,bool,bool)
addMemberDocs(EntryNav*,MemberDef*,constchar*,ArgumentList*,bool ,NamespaceSDict*)6CppDependencyGlobalMembers.addMemberDocs(EntryNav*,MemberDef* ,constchar*,ArgumentList*,bool,NamespaceSDict*)
addVariableToFile(EntryNav*,MemberDef::MemberType,constQCString& ,constQCString&,bool,MemberDef*)6CppDependencyGlobalMembers.addVariableToFile(EntryNav* ,MemberDef::MemberType,constQCString&,constQCString&,bool,MemberDef*)
findTemplateInstanceRelation(Entry*,Definition*,ClassDef* ,constQCString&,QDict<int>*,bool)6CppDependencyGlobalMembers.findTemplateInstanceRelation(Entry* ,Definition*,ClassDef*,constQCString&,QDict<int>*,bool)
findGlobalMember(EntryNav*,constQCString&,constchar*,constchar* ,constchar*,constchar*)6CppDependencyGlobalMembers.findGlobalMember(EntryNav*,constQCString& ,constchar*,constchar*,constchar*,constchar*)
replaceFunctionMacro(constQCString&,QCString*,int,int&,constDefine* ,QCString&)6CppDependencyGlobalMembers.replaceFunctionMacro(constQCString& ,QCString*,int,int&,constDefine*,QCString&)
matchArgument2(Definition*,FileDef*,Argument*,Definition*,FileDef* ,Argument*)6CppDependencyGlobalMembers.matchArgument2(Definition*,FileDef* ,Argument*,Definition*,FileDef*,Argument*)
writeXMLLink(QTextStream&,constchar*,constchar*,constchar*,constchar* ,constchar*)6CppDependencyGlobalMembers.writeXMLLink(QTextStream&,constchar* ,constchar*,constchar*,constchar*,constchar*)
writeXMLDocBlock(QTextStream&,constQCString&,int,Definition* ,MemberDef*,constQCString&)6CppDependencyGlobalMembers.writeXMLDocBlock(QTextStream& ,constQCString&,int,Definition*,MemberDef*,constQCString&)
addIndexItem(constchar*,constchar*,constchar*,constchar*,constchar* ,constMemberDef*)6IndexIntf.addIndexItem(constchar*,constchar*,constchar*,constchar* ,constchar*,constMemberDef*)
foreach<A1,A2,A3,A4,A5>(void(IndexIntf::*)(A1,A2,A3,A4,A5),A1,A2,A3,A4 ,A5)6IndexList.foreach<A1,A2,A3,A4,A5>(void(IndexIntf::*)(A1,A2,A3,A4,A5) ,A1,A2,A3,A4,A5)
addIndexItem(constchar*,constchar*,constchar*,constchar*,constchar* ,constMemberDef*)6IndexList.addIndexItem(constchar*,constchar*,constchar*,constchar* ,constchar*,constMemberDef*)
Definition(constchar*,int,constchar*,constchar*,constchar*,bool)6Definition.Definition(constchar*,int,constchar*,constchar*,constchar* ,bool)
writeDocumentation(MemberList*,OutputList&,constchar*,Definition*,bool ,bool)6MemberDef.writeDocumentation(MemberList*,OutputList&,constchar* ,Definition*,bool,bool)
writeLink(OutputList&,ClassDef*,NamespaceDef*,FileDef*,GroupDef*,bool)6MemberDef.writeLink(OutputList&,ClassDef*,NamespaceDef*,FileDef* ,GroupDef*,bool)
parseDoc(constchar*,int,constchar*,MemberDef*,constQCString&,bool)6BaseOutputDocInterface.parseDoc(constchar*,int,constchar*,MemberDef* ,constQCString&,bool)
forall(void(OutputGenerator::*)(constchar*,constchar*,constchar* ,constchar*,constchar*),constchar*,constchar*,constchar*,constchar* ,constchar*)6OutputList.forall(void(OutputGenerator::*)(constchar*,constchar* ,constchar*,constchar*,constchar*),constchar*,constchar*,constchar* ,constchar*,constchar*)

Statistics

Stat   # Parameters
Sum:363
Average:7.7234
Minimum:6
Maximum:13
Standard deviation:2.0803
Variance:4.3277
warningCritical    Rule warning: Methods with too many local variables
// <Name>Methods with too many local variables</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.NbVariables > 15 
  
orderby m.NbVariables descending
select new { m, m.NbVariables }

// Methods where NbVariables > 8 are hard to understand and maintain.
// Methods where NbVariables > 15 are extremely complex 
// and should be split in smaller methods.
// See the definition of the Nbvariables metric here 
// http://www.cppdepend.com/Metrics.aspx#Nbvariables

66 methods matched

methods# VariablesFull Name
methods# VariablesFull Name
codeYYlex()101CppDependencyGlobalMembers.codeYYlex()
findMember(EntryNav*,QCString,bool,bool)85CppDependencyGlobalMembers.findMember(EntryNav*,QCString,bool,bool)
scanYYlex()50CppDependencyGlobalMembers.scanYYlex()
check()46Config.check()
getDefs(constQCString&,constQCString&,constchar*,MemberDef*& ,ClassDef*&,FileDef*&,NamespaceDef*&,GroupDef*&,bool,FileDef*,bool ,bool)41CppDependencyGlobalMembers.getDefs(constQCString&,constQCString& ,constchar*,MemberDef*&,ClassDef*&,FileDef*&,NamespaceDef*&,GroupDef*& ,bool,FileDef*,bool,bool)
preYYlex()40CppDependencyGlobalMembers.preYYlex()
parseAttType()39QXmlSimpleReader.parseAttType()
mergeMembers()39ClassDef.mergeMembers()
parseInput()37CppDependencyGlobalMembers.parseInput()
parseElementDecl()36QXmlSimpleReader.parseElementDecl()
generateXMLForMember(MemberDef*,QTextStream&,QTextStream&,Definition* ,bool)36CppDependencyGlobalMembers.generateXMLForMember(MemberDef* ,QTextStream&,QTextStream&,Definition*,bool)
readDirEntries(constQString&,int,int)34QDir.readDirEntries(constQString&,int,int)
parseFiles(Entry*,EntryNav*)34CppDependencyGlobalMembers.parseFiles(Entry*,EntryNav*)
parseContent()32QXmlSimpleReader.parseContent()
findBases(QCString,Definition*,FileDef*,bool)32CppDependencyGlobalMembers.findBases(QCString,Definition*,FileDef* ,bool)
buildFunctionList(EntryNav*)32CppDependencyGlobalMembers.buildFunctionList(EntryNav*)
parseEntityDecl()30QXmlSimpleReader.parseEntityDecl()
preprocessFile(constchar*,BufStr&,BufStr&)29CppDependencyGlobalMembers.preprocessFile(constchar*,BufStr&,BufStr&)
writeAlphabeticalClassList(OutputList&)29CppDependencyGlobalMembers.writeAlphabeticalClassList(OutputList&)
sprintf(constchar*)28QString.sprintf(constchar*)
parseAttlistDecl()28QXmlSimpleReader.parseAttlistDecl()
parseExternalID(bool)27QXmlSimpleReader.parseExternalID(bool)
parsePI(bool)26QXmlSimpleReader.parsePI(bool)
doctokenizerYYlex()26CppDependencyGlobalMembers.doctokenizerYYlex()
parseElement()25QXmlSimpleReader.parseElement()
parseDoctype()25QXmlSimpleReader.parseDoctype()
findFile(constchar*,bool,bool&,bool)25CppDependencyGlobalMembers.findFile(constchar*,bool,bool&,bool)
parseMarkupdecl()24QXmlSimpleReader.parseMarkupdecl()
linkifyText(constTextGeneratorIntf&,Definition*,FileDef*,constchar* ,constchar*,QDict<int>&,bool,bool,bool)24CppDependencyGlobalMembers.linkifyText(constTextGeneratorIntf& ,Definition*,FileDef*,constchar*,constchar*,QDict<int>&,bool,bool,bool )
findUsedClassesForClass(EntryNav*,Definition*,ClassDef*,ClassDef*,bool ,ArgumentList*,QDict<int>*)24CppDependencyGlobalMembers.findUsedClassesForClass(EntryNav* ,Definition*,ClassDef*,ClassDef*,bool,ArgumentList*,QDict<int>*)
addEnumValuesToEnums(EntryNav*)24CppDependencyGlobalMembers.addEnumValuesToEnums(EntryNav*)
getResolvedClassRec(Definition*,FileDef*,constchar*,MemberDef** ,QCString*,QCString*,bool)24CppDependencyGlobalMembers.getResolvedClassRec(Definition*,FileDef* ,constchar*,MemberDef**,QCString*,QCString*,bool)
addVariable(EntryNav*,int)23CppDependencyGlobalMembers.addVariable(EntryNav*,int)
ts_getbuf(QChar*,uint)22QTextStream.ts_getbuf(QChar*,uint)
parseProlog()22QXmlSimpleReader.parseProlog()
parseReference(bool&,QXmlSimpleReader::EntityRecognitionContext)22QXmlSimpleReader.parseReference(bool& ,QXmlSimpleReader::EntityRecognitionContext)
replaceFunctionMacro(constQCString&,QCString*,int,int&,constDefine* ,QCString&)22CppDependencyGlobalMembers.replaceFunctionMacro(constQCString& ,QCString*,int,int&,constDefine*,QCString&)
readIncludeFile(QCString&)22CppDependencyGlobalMembers.readIncludeFile(QCString&)
findClassRelation(EntryNav*,Definition*,ClassDef*,BaseInfo*,QDict<int >*,FindBaseClassRelation_Mode,bool)21CppDependencyGlobalMembers.findClassRelation(EntryNav*,Definition* ,ClassDef*,BaseInfo*,QDict<int>*,FindBaseClassRelation_Mode,bool)
input_double()20QTextStream.input_double()
parseChoiceSeq()20QXmlSimpleReader.parseChoiceSeq()
parseEntityValue()20QXmlSimpleReader.parseEntityValue()
resolveRef(constchar*,constchar*,bool,Definition**,MemberDef**,bool)20CppDependencyGlobalMembers.resolveRef(constchar*,constchar*,bool ,Definition**,MemberDef**,bool)
defargsYYlex()20CppDependencyGlobalMembers.defargsYYlex()
computeTemplateClassRelations()20CppDependencyGlobalMembers.computeTemplateClassRelations()
QTextCodecFromIOD(QIODevice*)19QTextCodecFromIOD.QTextCodecFromIOD(QIODevice*)
generateClassOrGlobalLink(CodeOutputInterface&,char*,QCString&,bool ,bool,bool)19CppDependencyGlobalMembers.generateClassOrGlobalLink (CodeOutputInterface&,char*,QCString&,bool,bool,bool)
writeMemberList(OutputList&,bool,int,MemberIndexList* ,DefinitionIntf::DefType)19CppDependencyGlobalMembers.writeMemberList(OutputList&,bool,int ,MemberIndexList*,DefinitionIntf::DefType)
generateXMLForFile(FileDef*,QTextStream&,bool)19CppDependencyGlobalMembers.generateXMLForFile(FileDef*,QTextStream& ,bool)
addVariable(constQCString&,constQCString&,bool,bool)19VariableContext.addVariable(constQCString&,constQCString&,bool,bool)
parseAttValue()18QXmlSimpleReader.parseAttValue()
getLinkInScope(constQCString&,constQCString&,constchar* ,CodeOutputInterface&,constchar*,bool)18CppDependencyGlobalMembers.getLinkInScope(constQCString& ,constQCString&,constchar*,CodeOutputInterface&,constchar*,bool)
readCodeFragment(constchar*,int&,int&,QCString&)18CppDependencyGlobalMembers.readCodeFragment(constchar*,int&,int& ,QCString&)
CheckFileEntry(FileDef*,EntryNav*)18CppDependencyGlobalMembers.CheckFileEntry(FileDef*,EntryNav*)
transferFunctionReferences()18CppDependencyGlobalMembers.transferFunctionReferences()
writeDefArgumentList(OutputList&,ClassDef*,constQCString&,MemberDef*)18CppDependencyGlobalMembers.writeDefArgumentList(OutputList&,ClassDef* ,constQCString&,MemberDef*)
visual(int,int)17QString.visual(int,int)
resolveTypeDef(Definition*,constQCString&,Definition**)17CppDependencyGlobalMembers.resolveTypeDef(Definition*,constQCString& ,Definition**)
isAccessibleFromWithExpScope(Definition*,FileDef*,Definition* ,constQCString&)17CppDependencyGlobalMembers.isAccessibleFromWithExpScope(Definition* ,FileDef*,Definition*,constQCString&)
generateMemberLink(CodeOutputInterface&,constQCString&,char*)17CppDependencyGlobalMembers.generateMemberLink(CodeOutputInterface& ,constQCString&,char*)
addIncludedUsingDirectives()17FileDef.addIncludedUsingDirectives()
compile()16QRegExp.compile()
parseNotationDecl()16QXmlSimpleReader.parseNotationDecl()
findFileDef(constFileNameDict*,constchar*,bool&)16CppDependencyGlobalMembers.findFileDef(constFileNameDict*,constchar* ,bool&)
generateXML()16CppDependencyGlobalMembers.generateXML()
splitKnRArg(QCString&,QCString&)16CppDependencyGlobalMembers.splitKnRArg(QCString&,QCString&)

Statistics

Stat   # Variables
Sum:1 774
Average:26.879
Minimum:16
Maximum:101
Standard deviation:14.183
Variance:201.17
warningCritical    Rule warning: Methods with too many overloads
// <Name>Methods with too many overloads</Name>
warnif count > 0 from m in JustMyCode.Methods where 
  
m.NbOverloads > 6 && 
  
!m.IsOperator // Don't report operator overload
  orderby m.NbOverloads descending
select new { m, m.NbOverloads }

// Methods where NbOverloads > 6 might 
// be a problem to maintain and provoke higher coupling 
// than necessary. 
// This might also reveal a potential misused of the 
// C# and VB.NET language that since C#3 and VB9 support 
// object initialization. This feature helps reducing the number 
// of constructors of a class.
// See the definition of the NbOverloads metric here 
// http://www.cppdepend.com/Metrics.aspx#NbOverloads

76 methods matched

methods# OverloadsFull Name
methods# OverloadsFull Name
forall(void(OutputGenerator::*)())25OutputList.forall(void(OutputGenerator::*)())
forall(void(OutputGenerator::*)(constchar*),constchar*)25OutputList.forall(void(OutputGenerator::*)(constchar*),constchar*)
forall(void(OutputGenerator::*)(char),char)25OutputList.forall(void(OutputGenerator::*)(char),char)
forall(void(OutputGenerator::*)(int),int)25OutputList.forall(void(OutputGenerator::*)(int),int)
forall(void(OutputGenerator::*)(BaseOutputDocInterface::SectionTypes) ,BaseOutputDocInterface::SectionTypes)25OutputList.forall(void(OutputGenerator::*) (BaseOutputDocInterface::SectionTypes) ,BaseOutputDocInterface::SectionTypes)
forall(void(OutputGenerator::*)(bool),bool)25OutputList.forall(void(OutputGenerator::*)(bool),bool)
forall(void(OutputGenerator::*)(bool,int),bool,int)25OutputList.forall(void(OutputGenerator::*)(bool,int),bool,int)
forall(void(OutputGenerator::*)(bool,bool),bool,bool)25OutputList.forall(void(OutputGenerator::*)(bool,bool),bool,bool)
forall(void(OutputGenerator::*)(constchar*,constchar*,constchar*,int) ,constchar*,constchar*,constchar*,int)25OutputList.forall(void(OutputGenerator::*)(constchar*,constchar* ,constchar*,int),constchar*,constchar*,constchar*,int)
forall(void(OutputGenerator::*)(int,bool),int,bool)25OutputList.forall(void(OutputGenerator::*)(int,bool),int,bool)
forall(void(OutputGenerator::*)(bool,constchar*),bool,constchar*)25OutputList.forall(void(OutputGenerator::*)(bool,constchar*),bool ,constchar*)
forall(void(OutputGenerator::*)(BaseOutputDocInterface::ParamListTypes ,constchar*),BaseOutputDocInterface::ParamListTypes,constchar*)25OutputList.forall(void(OutputGenerator::*) (BaseOutputDocInterface::ParamListTypes,constchar*) ,BaseOutputDocInterface::ParamListTypes,constchar*)
forall(void(OutputGenerator::*)(constchar*,constchar*),constchar* ,constchar*)25OutputList.forall(void(OutputGenerator::*)(constchar*,constchar*) ,constchar*,constchar*)
forall(void(OutputGenerator::*)(constchar*,bool),constchar*,bool)25OutputList.forall(void(OutputGenerator::*)(constchar*,bool),constchar* ,bool)
forall(void(OutputGenerator::*)(constchar*,SectionInfo::SectionType) ,constchar*,SectionInfo::SectionType)25OutputList.forall(void(OutputGenerator::*)(constchar* ,SectionInfo::SectionType),constchar*,SectionInfo::SectionType)
forall(void(OutputGenerator::*)(bool,bool,bool),bool,bool,bool)25OutputList.forall(void(OutputGenerator::*)(bool,bool,bool),bool,bool ,bool)
forall(void(OutputGenerator::*)(constchar*,constchar*,bool),constchar* ,constchar*,bool)25OutputList.forall(void(OutputGenerator::*)(constchar*,constchar*,bool) ,constchar*,constchar*,bool)
forall(void(OutputGenerator::*)(constchar*,constchar* ,SectionInfo::SectionType),constchar*,constchar* ,SectionInfo::SectionType)25OutputList.forall(void(OutputGenerator::*)(constchar*,constchar* ,SectionInfo::SectionType),constchar*,constchar* ,SectionInfo::SectionType)
forall(void(OutputGenerator::*)(uchar,uchar,uchar),uchar,uchar,uchar)25OutputList.forall(void(OutputGenerator::*)(uchar,uchar,uchar),uchar ,uchar,uchar)
forall(void(OutputGenerator::*)(constchar*,constchar*,constchar*) ,constchar*,constchar*,constchar*)25OutputList.forall(void(OutputGenerator::*)(constchar*,constchar* ,constchar*),constchar*,constchar*,constchar*)
forall(void(OutputGenerator::*)(constClassDiagram&,constchar* ,constchar*),constClassDiagram&,constchar*,constchar*)25OutputList.forall(void(OutputGenerator::*)(constClassDiagram& ,constchar*,constchar*),constClassDiagram&,constchar*,constchar*)
forall(void(OutputGenerator::*)(BaseOutputDocInterface::SectionTypes ,constchar*,constchar*,constchar*) ,BaseOutputDocInterface::SectionTypes,constchar*,constchar*,constchar* )25OutputList.forall(void(OutputGenerator::*) (BaseOutputDocInterface::SectionTypes,constchar*,constchar*,constchar* ),BaseOutputDocInterface::SectionTypes,constchar*,constchar* ,constchar*)
forall(void(OutputGenerator::*)(constchar*,constchar*,constchar* ,constchar*),constchar*,constchar*,constchar*,constchar*)25OutputList.forall(void(OutputGenerator::*)(constchar*,constchar* ,constchar*,constchar*),constchar*,constchar*,constchar*,constchar*)
forall(void(OutputGenerator::*)(constchar*,constchar*,constchar*,bool) ,constchar*,constchar*,constchar*,bool)25OutputList.forall(void(OutputGenerator::*)(constchar*,constchar* ,constchar*,bool),constchar*,constchar*,constchar*,bool)
forall(void(OutputGenerator::*)(constchar*,constchar*,constchar* ,constchar*,constchar*),constchar*,constchar*,constchar*,constchar* ,constchar*)25OutputList.forall(void(OutputGenerator::*)(constchar*,constchar* ,constchar*,constchar*,constchar*),constchar*,constchar*,constchar* ,constchar*,constchar*)
arg(long,int,int)10QString.arg(long,int,int)
arg(ulong,int,int)10QString.arg(ulong,int,int)
arg(int,int,int)10QString.arg(int,int,int)
arg(uint,int,int)10QString.arg(uint,int,int)
arg(short,int,int)10QString.arg(short,int,int)
arg(ushort,int,int)10QString.arg(ushort,int,int)
arg(char,int)10QString.arg(char,int)
arg(QChar,int)10QString.arg(QChar,int)
arg(constQString&,int)10QString.arg(constQString&,int)
arg(double,int,char,int)10QString.arg(double,int,char,int)
QChar()9QChar.QChar()
QChar(char)9QChar.QChar(char)
QChar(uchar)9QChar.QChar(uchar)
QChar(uchar,uchar)9QChar.QChar(uchar,uchar)
QChar(constQChar&)9QChar.QChar(constQChar&)
QChar(ushort)9QChar.QChar(ushort)
QChar(short)9QChar.QChar(short)
QChar(uint)9QChar.QChar(uint)
QChar(int)9QChar.QChar(int)
QString()9QString.QString()
QString(QChar)9QString.QString(QChar)
QString(constQString&)9QString.QString(constQString&)
QString(constQByteArray&)9QString.QString(constQByteArray&)
QString(constQCString&)9QString.QString(constQCString&)
QString(constQChar*,uint)9QString.QString(constQChar*,uint)
QString(constchar*)9QString.QString(constchar*)
QString(int,bool)9QString.QString(int,bool)
QString(QStringData*,bool)9QString.QString(QStringData*,bool)
setNum(short)8QCString.setNum(short)
setNum(ushort)8QCString.setNum(ushort)
setNum(int)8QCString.setNum(int)
setNum(uint)8QCString.setNum(uint)
setNum(long)8QCString.setNum(long)
setNum(ulong)8QCString.setNum(ulong)
setNum(float,char,int)8QCString.setNum(float,char,int)
setNum(double,char,int)8QCString.setNum(double,char,int)
setNum(short,int)8QString.setNum(short,int)
setNum(ushort,int)8QString.setNum(ushort,int)
setNum(int,int)8QString.setNum(int,int)
setNum(uint,int)8QString.setNum(uint,int)
setNum(long,int)8QString.setNum(long,int)
setNum(ulong,int)8QString.setNum(ulong,int)
setNum(float,char,int)8QString.setNum(float,char,int)
setNum(double,char,int)8QString.setNum(double,char,int)
QTextStream()7QTextStream.QTextStream()
QTextStream(QIODevice*)7QTextStream.QTextStream(QIODevice*)
QTextStream(QString*,int)7QTextStream.QTextStream(QString*,int)
QTextStream(QString&,int)7QTextStream.QTextStream(QString&,int)
QTextStream(QByteArray,int)7QTextStream.QTextStream(QByteArray,int)
QTextStream(FILE*,int)7QTextStream.QTextStream(FILE*,int)
QTextStream(constQTextStream&)7QTextStream.QTextStream(constQTextStream&)

Statistics

Stat   # Overloads
Sum:1 064
Average:14
Minimum:7
Maximum:25
Standard deviation:7.7409
Variance:59.921
warningCritical    Rule warning: Types with too many methods
// <Name>Types with too many methods</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.Methods.Count() > 20 && !t.IsGlobal
  
orderby t.Methods.Count() descending
select new { t, t.InstanceMethods, t.StaticMethods }

// Types where Methods.Count() > 20 might be hard to 
// understand and maintain 
// but there might be cases where it is relevant 
// to have a high number of methods. 
// For example, the System.Windows.Forms.DataGridView 
// standard class has more than 1000 methods.

74 types matched

typesInstanceMethodsStaticMethodsFull Name
typesInstanceMethodsStaticMethodsFull Name
Translator224 methods0 methodTranslator
TranslatorDecoder222 methods0 methodTranslatorDecoder
TranslatorCroatian219 methods0 methodTranslatorCroatian
TranslatorSerbian219 methods0 methodTranslatorSerbian
TranslatorEnglish218 methods0 methodTranslatorEnglish
TranslatorDutch218 methods0 methodTranslatorDutch
TranslatorCzech218 methods0 methodTranslatorCzech
TranslatorItalian218 methods0 methodTranslatorItalian
TranslatorGerman218 methods0 methodTranslatorGerman
TranslatorSpanish218 methods0 methodTranslatorSpanish
TranslatorFinnish218 methods0 methodTranslatorFinnish
TranslatorRussian218 methods0 methodTranslatorRussian
TranslatorKorean218 methods0 methodTranslatorKorean
TranslatorChinese218 methods0 methodTranslatorChinese
TranslatorChinesetraditional218 methods0 methodTranslatorChinesetraditional
TranslatorBrazilian218 methods0 methodTranslatorBrazilian
TranslatorCatalan218 methods0 methodTranslatorCatalan
TranslatorPersian218 methods0 methodTranslatorPersian
TranslatorMacedonian216 methods0 methodTranslatorMacedonian
TranslatorJapanese206 methods0 methodTranslatorJapanese
TranslatorPolish205 methods0 methodTranslatorPolish
TranslatorGreek205 methods0 methodTranslatorGreek
TranslatorIndonesian204 methods0 methodTranslatorIndonesian
TranslatorNorwegian204 methods0 methodTranslatorNorwegian
TranslatorUkrainian204 methods0 methodTranslatorUkrainian
TranslatorArabic204 methods0 methodTranslatorArabic
TranslatorRomanian203 methods0 methodTranslatorRomanian
TranslatorDanish197 methods0 methodTranslatorDanish
TranslatorFrench196 methods0 methodTranslatorFrench
TranslatorHungarian195 methods0 methodTranslatorHungarian
TranslatorSwedish194 methods0 methodTranslatorSwedish
TranslatorSlovene194 methods0 methodTranslatorSlovene
TranslatorLithuanian194 methods0 methodTranslatorLithuanian
TranslatorAfrikaans194 methods0 methodTranslatorAfrikaans
TranslatorPortuguese192 methods0 methodTranslatorPortuguese
OutputList191 methods0 methodOutputList
TranslatorSlovak184 methods0 methodTranslatorSlovak
MemberDef157 methods0 methodMemberDef
QString109 methods14 methodsQString
ClassDef120 methods0 methodClassDef
OutputGenerator110 methods0 methodOutputGenerator
QXmlSimpleReader74 methods0 methodQXmlSimpleReader
FileDef73 methods0 methodFileDef
QTextStream72 methods0 methodQTextStream
Definition70 methods2 methodsDefinition
QCString61 methods1 methodQCString
BaseOutputDocInterface60 methods0 methodBaseOutputDocInterface
SCString58 methods1 methodSCString
QDir42 methods15 methodsQDir
NamespaceDef46 methods0 methodNamespaceDef
QGList45 methods0 methodQGList
QIODevice41 methods0 methodQIODevice
QDataStream39 methods0 methodQDataStream
QList<type>39 methods0 methodQList<type>
QValueList<T>37 methods0 methodQValueList<T>
QFileInfo34 methods2 methodsQFileInfo
QFile28 methods6 methodsQFile
DirDef31 methods3 methodsDirDef
QCharRef33 methods0 methodQCharRef
QArray<type>32 methods0 methodQArray<type>
QGDict31 methods0 methodQGDict
MemberList31 methods0 methodMemberList
QChar28 methods1 methodQChar
QDate23 methods5 methodsQDate
QXmlDefaultHandler28 methods0 methodQXmlDefaultHandler
QGArray26 methods1 methodQGArray
QTime23 methods3 methodsQTime
QGVector25 methods1 methodQGVector
QTextCodec16 methods10 methodsQTextCodec
Config23 methods2 methodsConfig
TranslatorAdapter_1_5_425 methods0 methodTranslatorAdapter_1_5_4
QVector<type>23 methods0 methodQVector<type>
QDateTime20 methods1 methodQDateTime
QXmlReader21 methods0 methodQXmlReader

Statistics

Stat   InstanceMethods   StaticMethods
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00
warningCritical    Rule warning: Types with too many fields
// <Name>Types with too many fields</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.Fields.Count() > 20 && 
  
!t.IsEnumeration && !t.IsGlobal
  
orderby t.Fields.Count() descending
select new { t, t.InstanceFields, t.StaticFields}

// Types where Fields.Count() > 20 and not IsEnumeration 
// might be hard to understand and maintain 
// but there might be cases where it is relevant 
// to have a high number of fields. 
// For example, the System.Windows.Forms.Control 
// standard class has more than 200 fields.

6 types matched

typesInstanceFieldsStaticFieldsFull Name
typesInstanceFieldsStaticFieldsFull Name
Doxygen0 field62 fieldsDoxygen
MemberDefImpl41 fields0 fieldMemberDefImpl
ClassDefImpl37 fields0 fieldClassDefImpl
Entry27 fields1 fieldEntry
FileDef26 fields0 fieldFileDef
QXmlSimpleReader24 fields1 fieldQXmlSimpleReader

Statistics

Stat   InstanceFields   StaticFields
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00
warningCritical    Rule warning: Types with poor cohesion
// <Name>Types with poor cohesion</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
(t.LCOM > 0.8 || t.LCOMHS > 0.95) && 
  
t.NbFields > 10 && 
  
t.NbMethods >10 && !t.IsGlobal
  
orderby t.LCOM descending, t.LCOMHS descending
select new { t, t.LCOM, t.LCOMHS, 
                
t.NbMethods, t.NbFields }

// Types where LCOM > 0.8 and NbFields > 10 
// and NbMethods >10 might be problematic. 
// However, it is very hard to avoid such 
// non-cohesive types. The LCOMHS metric
// is often considered as more efficient to 
// detect non-cohesive types.
// See the definition of the LCOM metric here 
// http://www.cppdepend.com/Metrics.aspx#LCOM

6 types matched

typesLack of Cohesion Of Methods (LCOM)LCOM Henderson-Sellers (LCOMHS)# Methods# FieldsFull Name
typesLack of Cohesion Of Methods (LCOM)LCOM Henderson-Sellers (LCOMHS)# Methods# FieldsFull Name
FileDef0.95890.972227526FileDef
NamespaceDef0.934780.955564811NamespaceDef
QXmlSimpleReader0.912160.924667625QXmlSimpleReader
QTextStream0.904160.915757917QTextStream
MemberList0.848210.875583414MemberList
Entry0.837040.896831528Entry

Statistics

Stat   Lack of Cohesion Of Methods (LCOM)   LCOM Henderson-Sellers (LCOMHS)   # Methods   # Fields
Sum:5.39535.5406327121
Average:0.899210.9234354.520.167
Minimum:0.837040.875581511
Maximum:0.95890.972227928
Standard deviation:0.0437560.0328424.1716.4657
Variance:0.00191460.0010785584.2541.806

Object Oriented Design  
 1 5 0 

warningCritical    Rule warning: Base class should not use derivatives
// <Name>Base class should not use derivatives</Name>
warnif count > 0 
from baseClass in JustMyCode.Types
where baseClass.IsClass && baseClass.NbChildren > 0 // <-- for optimization!
let derivedClassesUsed = baseClass.DerivedTypes.UsedBy(baseClass)
where derivedClassesUsed.Count() > 0
select new { baseClass, derivedClassesUsed }

2 types matched

typesderivedClassesUsedFull Name
typesderivedClassesUsedFull Name
QTextCodec2 typesQTextCodec
Definition2 typesDefinition

Statistics

Stat   derivedClassesUsed
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Class shouldn't be too deep in inheritance tree
// <Name>Class shouldn't be too deep in inheritance tree</Name>
warnif count > 0 from t in JustMyCode.Types 
where t.IsClass
let baseClasses = t.BaseClasses.ExceptThirdParty()

// Warn for classes with 3 or more base classes.
// Notice that we don't count third-party classes 
// because this rule concerns your code design,
// not third-party libraries consumed design.
where baseClasses.Count() >= 3

select new { t, baseClasses, 
                
// The metric value DepthOfInheritance takes account
                // of third-party base classes
                t.DepthOfInheritance } 

// Branches too long in the derivation should be avoided.
// See the definition of the DepthOfInheritance metric here 
// http://www.cppdepend.com/Metrics.aspx#DIT

70 types matched

typesbaseClassesDepth of inheritanceFull Name
typesbaseClassesDepth of inheritanceFull Name
QStrList3 types3QStrList
QStrIList4 types4QStrIList
QCList3 types3QCList
QGDItList3 types3QGDItList
QXmlDefaultHandler6 types1QXmlDefaultHandler
QSortedList<type>3 types3QSortedList<type>
QStrVec3 types3QStrVec
QStrIVec4 types4QStrIVec
MemberList3 types3MemberList
MemberDict3 types3MemberDict
ClassDef3 types2ClassDef
UsesClassDict3 types3UsesClassDict
BaseClassList3 types3BaseClassList
ClassList3 types3ClassList
ClassDict3 types3ClassDict
FileDef3 types2FileDef
FileList3 types3FileList
OutputNameList3 types3OutputNameList
OutputNameDict3 types3OutputNameDict
MemberName3 types3MemberName
MemberNameInfo3 types3MemberNameInfo
FileName4 types4FileName
FileNameList3 types3FileNameList
FileNameDict3 types3FileNameDict
NamespaceDef3 types2NamespaceDef
NamespaceList3 types3NamespaceList
NamespaceDict3 types3NamespaceDict
DirList3 types3DirList
DirDef3 types2DirDef
StringDict3 types3StringDict
ArgumentList3 types3ArgumentList
DefinitionList4 types3DefinitionList
SList<T>3 types3SList<T>
SIntList<T>3 types3SIntList<T>
MemberDef3 types2MemberDef
SectionDict3 types3SectionDict
OutputList3 types3OutputList
DefineList3 types3DefineList
DefineName3 types3DefineName
DefineNameList3 types3DefineNameList
FileStorage3 types2FileStorage
MemberIndexList3 types3MemberIndexList
PrefixIgnoreClassList4 types4PrefixIgnoreClassList
TranslatorAdapter_1_4_63 types3TranslatorAdapter_1_4_6
TranslatorAdapter_1_4_14 types4TranslatorAdapter_1_4_1
TranslatorAdapter_1_3_95 types5TranslatorAdapter_1_3_9
TranslatorAdapter_1_3_86 types6TranslatorAdapter_1_3_8
TranslatorAdapter_1_3_37 types7TranslatorAdapter_1_3_3
TranslatorAdapter_1_3_18 types8TranslatorAdapter_1_3_1
TranslatorAdapter_1_39 types9TranslatorAdapter_1_3
TranslatorAdapter_1_2_1810 types10TranslatorAdapter_1_2_18
TranslatorSwedish4 types4TranslatorSwedish
TranslatorFrench3 types3TranslatorFrench
TranslatorIndonesian4 types4TranslatorIndonesian
TranslatorJapanese3 types3TranslatorJapanese
TranslatorSpanish3 types3TranslatorSpanish
TranslatorPolish4 types4TranslatorPolish
TranslatorPortuguese8 types8TranslatorPortuguese
TranslatorHungarian4 types4TranslatorHungarian
TranslatorRomanian5 types5TranslatorRomanian
TranslatorSlovene4 types4TranslatorSlovene
TranslatorNorwegian4 types4TranslatorNorwegian
TranslatorDanish3 types3TranslatorDanish
TranslatorSlovak11 types11TranslatorSlovak
TranslatorUkrainian5 types5TranslatorUkrainian
TranslatorGreek3 types3TranslatorGreek
TranslatorLithuanian4 types4TranslatorLithuanian
TranslatorAfrikaans4 types4TranslatorAfrikaans
TranslatorArabic4 types4TranslatorArabic
XmlSectionMapper3 types3XmlSectionMapper

Statistics

Stat   baseClasses   Depth of inheritance
Sum:0260
Average:03.7143
Minimum:01
Maximum:011
Standard deviation:01.79
Variance:03.2041
warningCritical    Rule warning: Constructor should not call a virtual methods
// <Name>Constructor should not call a virtual methods</Name>

// Returns constructor of a non-sealed type calling virtual methods.
// In such a situation, if a derived class overrides the method,
// then the override method will be called before the derived constructor.
// This makes the class fragile to derive from.
//
// Violations reported can be solved by re-designing object initialisation
// or by marking the parent class as sealed, if possible.

warnif count > 0
from t in Application.Types where 
   
t.IsClass &&
  
!t.IsGeneratedByCompiler

from ctor in t.Constructors 
let virtualMethodsCalled = from mCalled in ctor.MethodsCalled
                           
where mCalled.IsVirtual &&
                                
(mCalled.ParentType == t ||
                                 
t.DeriveFrom(mCalled.ParentType))
                           
select mCalled
where virtualMethodsCalled.Count() > 0

select new { ctor , 
             
virtualMethodsCalled, 
             
// If there is no derived type, it might be 
             // an opportunity to mark t as sealed.
             t.DerivedTypes }

8 methods matched

methodsvirtualMethodsCalledDerivedTypesFull Name
methodsvirtualMethodsCalledDerivedTypesFull Name
QGArray()1 method1 typeQGArray.QGArray()
QGArray(int)1 method1 typeQGArray.QGArray(int)
QFileInfo(constQDir&,constQString&)1 method0 typeQFileInfo.QFileInfo(constQDir&,constQString&)
QGVector(constQGVector&)1 method3 typesQGVector.QGVector(constQGVector&)
QTextCodecFromIOD(QIODevice*)1 method0 typeQTextCodecFromIOD.QTextCodecFromIOD(QIODevice*)
QXmlInputSource(QTextStream&)2 methods0 typeQXmlInputSource.QXmlInputSource(QTextStream&)
LockingPtr<T>(constLockableObj*,constT*)1 method0 typeLockingPtr<T>.LockingPtr<T>(constLockableObj*,constT*)
TranslatorDecoder(Translator*)1 method0 typeTranslatorDecoder.TranslatorDecoder(Translator*)

Statistics

Stat   virtualMethodsCalled   DerivedTypes
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00
warningCritical    Rule warning: Don't assign static fields from instance methods
// <Name>Don't assign static fields from instance methods</Name>
// Assigning static fields from instance methods leads to
// poorly maintainable and non thread-safe code.
// It is advised to assign static fields inline or from class constructor.
warnif count > 0
from f in Application.Fields where 
  
f.IsStatic &&
 
!f.IsGeneratedByCompiler && !f.IsGlobal
 
let assignedBy = f.MethodsAssigningMe.Where(m => !m.IsStatic)
where assignedBy .Count() > 0
select new { f, assignedBy }

38 fields matched

fieldsassignedByFull Name
fieldsassignedByFull Name
null1 methodQString.null
shared_null2 methodsQString.shared_null
floatfield1 methodQTextStream.floatfield
classSDict2 methodsDoxygen.classSDict
hiddenClasses1 methodDoxygen.hiddenClasses
externalReferences2 methodsDoxygen.externalReferences
externalmlist1 methodDoxygen.externalmlist
externalinputFilesDict2 methodsDoxygen.externalinputFilesDict
allinputFilesDict1 methodDoxygen.allinputFilesDict
duplicateClasses1 methodDoxygen.duplicateClasses
filesTogenerate1 methodDoxygen.filesTogenerate
filesPreprocessed1 methodDoxygen.filesPreprocessed
idlfiles1 methodDoxygen.idlfiles
includeNameDict1 methodDoxygen.includeNameDict
inputNameDict1 methodDoxygen.inputNameDict
inputNameList2 methodsDoxygen.inputNameList
memberNameSDict3 methodsDoxygen.memberNameSDict
functionNameSDict3 methodsDoxygen.functionNameSDict
namespaceSDict4 methodsDoxygen.namespaceSDict
globalScope4 methodsDoxygen.globalScope
htmlFileExtension1 methodDoxygen.htmlFileExtension
parseSourcesNeeded1 methodDoxygen.parseSourcesNeeded
symbolMap2 methodsDoxygen.symbolMap
outputToWizard1 methodDoxygen.outputToWizard
lookupCache1 methodDoxygen.lookupCache
directories3 methodsDoxygen.directories
parserManager1 methodDoxygen.parserManager
suppressDocWarnings6 methodsDoxygen.suppressDocWarnings
symbolCache1 methodDoxygen.symbolCache
symbolStorage1 methodDoxygen.symbolStorage
isPragma2 methodsDoxygen.isPragma
fileDictionary1 methodDoxygen.fileDictionary
fileIndex1 methodDoxygen.fileIndex
CacheFilesDict1 methodDoxygen.CacheFilesDict
StorageFilesDict1 methodDoxygen.StorageFilesDict
Koi8RToWindows1251Tab1 methodTranslator.Koi8RToWindows1251Tab
Windows1251ToKoi8RTab1 methodTranslator.Windows1251ToKoi8RTab
misses1 methodObjCache.misses

Statistics

Stat   assignedBy
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Avoid Abstract Classes with too many methods
// <Name>Avoid Abstract Classes with too many methods</Name>
// An abstract class  should abstract a clear and well-defined concept.
// Such concept shoudln't be represented with too many methods and property getter.
warnif count > 0 from t in JustMyCode.Types where 
  
t.IsAbstract
let methodsAndGetters = t.Methods
where methodsAndGetters.Count() > 10
select new { t, methodsAndGetters }

10 types matched

typesmethodsAndGettersFull Name
typesmethodsAndGettersFull Name
QIODevice41 methodsQIODevice
QTextCodec26 methodsQTextCodec
QXmlReader21 methodsQXmlReader
QXmlContentHandler14 methodsQXmlContentHandler
ConfigOption17 methodsConfigOption
Definition72 methodsDefinition
CodeOutputInterface13 methodsCodeOutputInterface
BaseOutputDocInterface60 methodsBaseOutputDocInterface
OutputGenerator110 methodsOutputGenerator
Translator224 methodsTranslator

Statistics

Stat   methodsAndGetters
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0

Design  
 2 1 0 

warningCritical    Rule warning: Nested types should not be visible
// <Name>Nested types should not be visible</Name>
warnif count > 0 from t in JustMyCode.Types where 
  
t.IsNested && 
 
!t.IsGeneratedByCompiler &&
 
!t.IsPrivate 
select new { t, t.NbLinesOfCode, t.Visibility } 


// A nested type is a type declared within the 
// scope of another type. Nested types are useful 
// for encapsulating private implementation details 
// of the containing type. Used for this purpose, 
// nested types should not be externally visible. 
// Do not use externally visible nested types for 
// logical grouping or to avoid name collisions; 
// instead, use namespaces.

40 types matched

types# lines of code (LOC)VisibilityFull Name
types# lines of code (LOC)VisibilityFull Name
QGArray+array_data2PublicQGArray+array_data
QChar+CategoryN/APublicQChar+Category
QChar+DirectionN/APublicQChar+Direction
QChar+DecompositionN/APublicQChar+Decomposition
QChar+JoiningN/APublicQChar+Joining
QDataStream+ByteOrderN/APublicQDataStream+ByteOrder
QFileInfo+PermissionSpecN/APublicQFileInfo+PermissionSpec
QDir+FilterSpecN/APublicQDir+FilterSpec
QDir+SortSpecN/APublicQDir+SortSpec
QGDict+KeyTypeN/AProtectedQGDict+KeyType
QGCache+KeyTypeN/AProtectedQGCache+KeyType
QMapNodeBase+ColorN/APublicQMapNodeBase+Color
QTextStream+EncodingN/APublicQTextStream+Encoding
QTextStream+AnonymousEnumN/APublicQTextStream+AnonymousEnum
QTextStreamPrivate+SourceTypeN/APublicQTextStreamPrivate+SourceType
CPPValue+TypeN/APublicCPPValue+Type
MemberList+ListTypeN/APublicMemberList+ListType
ClassDef+CompoundTypeN/APublicClassDef+CompoundType
ConfigOption+OptionTypeN/APublicConfigOption+OptionType
ConfigOption+AnonymousEnumN/APublicConfigOption+AnonymousEnum
ConfigList+WidgetTypeN/APublicConfigList+WidgetType
ConfigString+WidgetTypeN/APublicConfigString+WidgetType
DirEntry+EntryKindN/APublicDirEntry+EntryKind
Debug+DebugMaskN/APublicDebug+DebugMask
Entry+SectionsN/APublicEntry+Sections
Entry+MemberSpecifierN/APublicEntry+MemberSpecifier
Entry+ClassSpecifierN/APublicEntry+ClassSpecifier
Entry+GroupDocTypeN/APublicEntry+GroupDocType
DefinitionIntf+DefTypeN/APublicDefinitionIntf+DefType
SDict<T>+Iterator7PublicSDict<T>+Iterator
SDict<T>+IteratorDict8PublicSDict<T>+IteratorDict
SIntDict<T>+Iterator7PublicSIntDict<T>+Iterator
MemberDef+MemberTypeN/APublicMemberDef+MemberType
SectionInfo+SectionTypeN/APublicSectionInfo+SectionType
BaseOutputDocInterface+ParamListTypesN/APublicBaseOutputDocInterface+ParamListTypes
BaseOutputDocInterface+SectionTypesN/APublicBaseOutputDocInterface+SectionTypes
OutputGenerator+OutputTypeN/APublicOutputGenerator+OutputType
VariableContext+Scope10PublicVariableContext+Scope
CallContext+Ctx0PublicCallContext+Ctx
TokenInfo+ParamDirN/APublicTokenInfo+ParamDir

Statistics

Stat   # lines of code (LOC)   Visibility
Sum:340
Average:5.66670
Minimum:00
Maximum:100
Standard deviation:3.4960
Variance:12.2220

Architecture and Layering  
 5 1 0 

warningCritical    Rule warning: Projects that don't satisfy the Abstractness/Instability principle
// <Name>Projects that don't satisfy the Abstractness/Instability principle</Name>
warnif percentage > 15 from a in Application.Projects where 
  
a.NormDistFromMainSeq > 0.7 
  
orderby a.NormDistFromMainSeq descending
select new { a, a.NormDistFromMainSeq }

// See the definition of the NormDistFromMainSeq metric here 
// http://www.cppdepend.com/Metrics.aspx#DitFromMainSeq

1 projects matched

projectNormalized dist from main seqFull Name
projectNormalized dist from main seqFull Name
qtools0.87719qtools

Statistics

Stat   Normalized dist from main seq
Sum:0.87719
Average:0.87719
Minimum:0.87719
Maximum:0.87719
Standard deviation:0.00013726
Variance:1.884086E-08

Dead Code  
 0 3 0 

warningCritical    Rule warning: Potentially dead Types
// <Name>Potentially dead Types</Name>
warnif count > 0

let tt=Types.UsedByAny(Application.Methods)
// Select types unused
let typesUnused = 
   
from t in JustMyCode.Types where
   
t.NbTypesUsingMe == 0 && !t.IsGlobal  select t



from t in typesUnused  where !tt.Contains(t)
select new { t }
        
        

120 types matched

The following list of types is truncated and contains only the first 100 types of the 120 types matched. All matched types could be listed in the report by unchecking the option:
CppDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a CQL Rule violated
It is recommended to use the CppDepend interactive UI capabilities to browse a large list of matched types.
typesFull Name
typesFull Name
QConstStringQConstString
QStrIListQStrIList
QFileInfo+PermissionSpecQFileInfo+PermissionSpec
QValueListPrivate<T>QValueListPrivate<T>
QMapPrivate<Key,T>QMapPrivate<Key,T>
QTextIStreamQTextIStream
QTSManipQTSManip
QTextOStreamIterator<T>QTextOStreamIterator<T>
QSimpleTextCodecQSimpleTextCodec
QLatin1CodecQLatin1Codec
QUtf8CodecQUtf8Codec
QUtf16CodecQUtf16Codec
QXmlDefaultHandlerQXmlDefaultHandler
QXmlNamespaceSupportPrivateQXmlNamespaceSupportPrivate
QXmlAttributesPrivateQXmlAttributesPrivate
QXmlInputSourcePrivateQXmlInputSourcePrivate
QXmlParseExceptionPrivateQXmlParseExceptionPrivate
QXmlLocatorPrivateQXmlLocatorPrivate
QXmlDefaultHandlerPrivateQXmlDefaultHandlerPrivate
QCacheIterator<type>QCacheIterator<type>
QIntDictIterator<type>QIntDictIterator<type>
QPtrDictIterator<type>QPtrDictIterator<type>
QQueue<type>QQueue<type>
QSortedList<type>QSortedList<type>
QStrIVecQStrIVec
SCStringSCString
CPPValueCPPValue
MemberDictMemberDict
UsesClassDictIteratorUsesClassDictIterator
ClassListIteratorClassListIterator
ClassDictClassDict
OutputNameListOutputNameList
OutputNameDictOutputNameDict
DirectoryDirectory
MemberNameIteratorMemberNameIterator
MemberNameSDictMemberNameSDict
FileNameIteratorFileNameIterator
FileNameListIteratorFileNameListIterator
FileNameDictFileNameDict
NamespaceListIteratorNamespaceListIterator
NamespaceDictNamespaceDict
DirRelationDirRelation
DirSDictDirSDict
EntryCacheEntryCache
FileCacheFileCache
StringDictStringDict
LookupInfoLookupInfo
IndexListIndexList
IndexSectionsIndexSections
ClassHighlightClassHighlight
Entry+GroupDocTypeEntry+GroupDocType
DocInfoDocInfo
BriefInfoBriefInfo
DefinitionListIteratorDefinitionListIterator
SList<T>SList<T>
SDict<T>+IteratorDictSDict<T>+IteratorDict
SIntList<T>SIntList<T>
SIntDict<T>+IteratorSIntDict<T>+Iterator
SourceReferenceSourceReference
TextGeneratorOLImplTextGeneratorOLImpl
SectionDictSectionDict
MapperMapper
MappersMappers
MethodContextMethodContext
VariableContextVariableContext
CallContextCallContext
BufStrBufStr
CondCtxCondCtx
ConfigFileStateConfigFileState
LabelMapperLabelMapper
DefineListDefineList
DefineNameListDefineNameList
StreamStorageStreamStorage
DocLexerContextDocLexerContext
CLanguageScannerCLanguageScanner
MemberIndexListMemberIndexList
PrefixIgnoreClassListPrefixIgnoreClassList
TranslatorDecoderTranslatorDecoder
TranslatorDutchTranslatorDutch
TranslatorSwedishTranslatorSwedish
TranslatorCzechTranslatorCzech
TranslatorFrenchTranslatorFrench
TranslatorIndonesianTranslatorIndonesian
TranslatorItalianTranslatorItalian
TranslatorGermanTranslatorGerman
TranslatorJapaneseTranslatorJapanese
TranslatorJapaneseEnTranslatorJapaneseEn
TranslatorSpanishTranslatorSpanish
TranslatorFinnishTranslatorFinnish
TranslatorRussianTranslatorRussian
TranslatorCroatianTranslatorCroatian
TranslatorPolishTranslatorPolish
TranslatorPortugueseTranslatorPortuguese
TranslatorHungarianTranslatorHungarian
TranslatorKoreanEnTranslatorKoreanEn
TranslatorKoreanTranslatorKorean
TranslatorRomanianTranslatorRomanian
TranslatorSloveneTranslatorSlovene
TranslatorChineseTranslatorChinese
TranslatorChinesetraditionalTranslatorChinesetraditional

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
warningCritical    Rule warning: Potentially dead Methods
// <Name>Potentially dead Methods</Name>
warnif count > 0
// Filter procedure for methods that should'nt be considered as dead
let canMethodBeConsideredAsDeadProc = new Func<IMethod, bool>(
    
m => !m.IsPublic &&       // Public methods might be used by client applications of your Projects.
         !m.IsEntryPoint &&            // Main() method is not used by-design.
         !m.IsClassConstructor &&      
         
!m.IsVirtual &&               // Only check for non virtual method that are not seen as used in IL.
         !(m.IsConstructor &&          // Don't take account of protected ctor that might be call by a derived ctors.
           m.IsProtected) &&
         
!m.IsGeneratedByCompiler
)

// Get methods unused
let methodsUnused = 
   
from m in JustMyCode.Methods where 
   
m.NbMethodsCallingMe == 0 && 
   
canMethodBeConsideredAsDeadProc(m)
   
select m

// Dead methods = methods used only by unused methods (recursive)
let deadMethodsMetric = methodsUnused.FillIterative(
   
methods => // Unique loop, just to let a chance to build the hashset.
              from o in new[] { new object() }
              
// Use a hashet to make Intersect calls much faster!
              let hashset = methods.ToHashSet()
              
from m in codeBase.Application.Methods.UsedByAny(methods).Except(methods)
              
where canMethodBeConsideredAsDeadProc(m) &&
                    
// Select methods called only by methods already considered as dead
                    hashset.Intersect(m.MethodsCallingMe).Count() == m.NbMethodsCallingMe
              
select m)

from m in JustMyCode.Methods.Intersect(deadMethodsMetric.DefinitionDomain)
select new { m, m.MethodsCallingMe, depth = deadMethodsMetric[m] }

144 methods matched

The following list of methods is truncated and contains only the first 100 methods of the 144 methods matched. All matched methods could be listed in the report by unchecking the option:
CppDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a CQL Rule violated
It is recommended to use the CppDepend interactive UI capabilities to browse a large list of matched methods.
methodsMethodsCallingMedepthFull Name
methodsMethodsCallingMedepthFull Name
operator=(constQGArray&)0 method0QGArray.operator=(constQGArray&)
assign(constQGArray&)1 method1QGArray.assign(constQGArray&)
assign(constchar*,uint)0 method0QGArray.assign(constchar*,uint)
store(constchar*,uint)0 method0QGArray.store(constchar*,uint)
sharedBlock()0 method0QGArray.sharedBlock()
setSharedBlock(QGArray::array_data*)0 method0QGArray.setSharedBlock(QGArray::array_data*)
setExpand(uint,constchar*,uint)0 method0QGArray.setExpand(uint,constchar*,uint)
deleteItem(QCollection::Item)0 method0qtoolsGlobalMembers.deleteItem(QCollection::Item)
deleteItem(Item)0 method0qtoolsGlobalMembers.deleteItem(Item)
deleteItem(QCollection::Item)0 method0qtoolsGlobalMembers.deleteItem(QCollection::Item)
deleteItem(QCollection::Item)0 method0qtoolsGlobalMembers.deleteItem(QCollection::Item)
msg_index(uint)0 method0QCString.msg_index(uint)
QIODevice(constQIODevice&)0 method0QIODevice.QIODevice(constQIODevice&)
operator=(constQIODevice&)0 method0QIODevice.operator=(constQIODevice&)
asciiToUnicode(constchar*,uint*,uint)0 method0QString.asciiToUnicode(constchar*,uint*,uint)
asciiToUnicode(constQByteArray&,uint*)0 method0QString.asciiToUnicode(constQByteArray&,uint*)
QBuffer(constQBuffer&)0 method0QBuffer.QBuffer(constQBuffer&)
operator=(constQBuffer&)0 method0QBuffer.operator=(constQBuffer&)
QDataStream(constQDataStream&)0 method0QDataStream.QDataStream(constQDataStream&)
operator=(constQDataStream&)0 method0QDataStream.operator=(constQDataStream&)
takeLast()0 method0QGList.takeLast()
at(uint)0 method0QGList.at(uint)
at()0 method0QGList.at()
deleteItem(QCollection::Item)0 method0QList<type>.deleteItem(QCollection::Item)
newItem(QCollection::Item)0 method0QStrList.newItem(QCollection::Item)
deleteItem(QCollection::Item)0 method0QStrList.deleteItem(QCollection::Item)
compareItems(QCollection::Item,QCollection::Item)0 method0QStrList.compareItems(QCollection::Item,QCollection::Item)
read(QDataStream&,QCollection::Item&)0 method0QStrList.read(QDataStream&,QCollection::Item&)
write(QDataStream&,QCollection::Item)0 method0QStrList.write(QDataStream&,QCollection::Item)
compareItems(QCollection::Item,QCollection::Item)0 method0QStrIList.compareItems(QCollection::Item,QCollection::Item)
QFile(constQFile&)0 method0QFile.QFile(constQFile&)
operator=(constQFile&)0 method0QFile.operator=(constQFile&)
matchstr(uint*,constchar*,uint,constchar*)0 method0QRegExp.matchstr(uint*,constchar*,uint,constchar*)
insert_string(constQString&,QCollection::Item,int,int)0 method0QGCache.insert_string(constQString&,QCollection::Item,int,int)
remove_string(constQString&)0 method0QGCache.remove_string(constQString&)
take_string(constQString&)1 method1QGCache.take_string(constQString&)
find_string(constQString&,bool)0 method0QGCache.find_string(constQString&,bool)
~QGCacheIterator()0 method0QGCacheIterator.~QGCacheIterator()
getKeyString()0 method0QGCacheIterator.getKeyString()
getKeyInt()0 method0QGCacheIterator.getKeyInt()
deleteItem(Item)0 method0QDict<type>.deleteItem(Item)
insertExpand(uint,Item)0 method0QGVector.insertExpand(uint,Item)
deleteItem(Item)0 method0QStack<type>.deleteItem(Item)
QTextStream(constQTextStream&)0 method0QTextStream.QTextStream(constQTextStream&)
operator=(constQTextStream&)0 method0QTextStream.operator=(constQTextStream&)
QStringBuffer(constQStringBuffer&)0 method0QStringBuffer.QStringBuffer(constQStringBuffer&)
operator=(constQStringBuffer&)0 method0QStringBuffer.operator=(constQStringBuffer&)
nameAddC(constQChar&)0 method0QXmlSimpleReader.nameAddC(constQChar&)
refAddC(constQChar&)0 method0QXmlSimpleReader.refAddC(constQChar&)
deleteItem(Item)0 method0QCache<type>.deleteItem(Item)
deleteItem(Item)0 method0QIntDict<type>.deleteItem(Item)
deleteItem(Item)0 method0QPtrDict<type>.deleteItem(Item)
deleteItem(Item)0 method0QQueue<type>.deleteItem(Item)
deleteItem(Item)0 method0QVector<type>.deleteItem(Item)
newItem(Item)0 method0QStrVec.newItem(Item)
deleteItem(Item)0 method0QStrVec.deleteItem(Item)
compareItems(Item,Item)0 method0QStrVec.compareItems(Item,Item)
read(QDataStream&,Item&)0 method0QStrVec.read(QDataStream&,Item&)
write(QDataStream&,Item)0 method0QStrVec.write(QDataStream&,Item)
compareItems(Item,Item)0 method0QStrIVec.compareItems(Item,Item)
msg_index(int)0 method0SCString.msg_index(int)
duplicate(constSCString&)0 method0SCString.duplicate(constSCString&)
duplicate(constchar*)1 method1SCString.duplicate(constchar*)
duplicate(constchar*,int)0 method0SCString.duplicate(constchar*,int)
addUsedInterfaceClasses(MemberDef*,constchar*)0 method0ClassDef.addUsedInterfaceClasses(MemberDef*,constchar*)
showUsedFiles(OutputList&)0 method0ClassDef.showUsedFiles(OutputList&)
writeMemberDeclarations(OutputList&,MemberList::ListType ,constQCString&,constchar*)0 method0ClassDef.writeMemberDeclarations(OutputList&,MemberList::ListType ,constQCString&,constchar*)
writeMemberDocumentation(OutputList&,MemberList::ListType ,constQCString&)0 method0ClassDef.writeMemberDocumentation(OutputList&,MemberList::ListType ,constQCString&)
writePlainMemberDeclaration(OutputList&,MemberList::ListType,bool)0 method0ClassDef.writePlainMemberDeclaration(OutputList&,MemberList::ListType ,bool)
writeBriefDescription(OutputList&,bool)0 method0ClassDef.writeBriefDescription(OutputList&,bool)
writeDetailedDescription(OutputList&,constQCString&,bool ,constQCString&)0 method0ClassDef.writeDetailedDescription(OutputList&,constQCString&,bool ,constQCString&)
writeIncludeFiles(OutputList&)0 method0ClassDef.writeIncludeFiles(OutputList&)
writeAllMembersLink(OutputList&)0 method0ClassDef.writeAllMembersLink(OutputList&)
writeInheritanceGraph(OutputList&)0 method0ClassDef.writeInheritanceGraph(OutputList&)
writeCollaborationGraph(OutputList&)0 method0ClassDef.writeCollaborationGraph(OutputList&)
writeMemberGroups(OutputList&)0 method0ClassDef.writeMemberGroups(OutputList&)
writeNestedClasses(OutputList&,constQCString&)0 method0ClassDef.writeNestedClasses(OutputList&,constQCString&)
startMemberDeclarations(OutputList&)0 method0ClassDef.startMemberDeclarations(OutputList&)
endMemberDeclarations(OutputList&)0 method0ClassDef.endMemberDeclarations(OutputList&)
startMemberDocumentation(OutputList&)0 method0ClassDef.startMemberDocumentation(OutputList&)
endMemberDocumentation(OutputList&)0 method0ClassDef.endMemberDocumentation(OutputList&)
writeAuthorSection(OutputList&)0 method0ClassDef.writeAuthorSection(OutputList&)
~Config()0 method0Config.~Config()
writeMemberDeclarations(OutputList&,MemberList::ListType ,constQCString&)0 method0FileDef.writeMemberDeclarations(OutputList&,MemberList::ListType ,constQCString&)
writeMemberDocumentation(OutputList&,MemberList::ListType ,constQCString&)0 method0FileDef.writeMemberDocumentation(OutputList&,MemberList::ListType ,constQCString&)
writeIncludeFiles(OutputList&)0 method0FileDef.writeIncludeFiles(OutputList&)
writeIncludeGraph(OutputList&)0 method0FileDef.writeIncludeGraph(OutputList&)
writeIncludedByGraph(OutputList&)0 method0FileDef.writeIncludedByGraph(OutputList&)
writeMemberGroups(OutputList&)0 method0FileDef.writeMemberGroups(OutputList&)
writeAuthorSection(OutputList&)0 method0FileDef.writeAuthorSection(OutputList&)
writeSourceLink(OutputList&)0 method0FileDef.writeSourceLink(OutputList&)
writeNamespaceDeclarations(OutputList&,constQCString&)0 method0FileDef.writeNamespaceDeclarations(OutputList&,constQCString&)
writeClassDeclarations(OutputList&,constQCString&)0 method0FileDef.writeClassDeclarations(OutputList&,constQCString&)
startMemberDeclarations(OutputList&)0 method0FileDef.startMemberDeclarations(OutputList&)
endMemberDeclarations(OutputList&)0 method0FileDef.endMemberDeclarations(OutputList&)
startMemberDocumentation(OutputList&)0 method0FileDef.startMemberDocumentation(OutputList&)
endMemberDocumentation(OutputList&)0 method0FileDef.endMemberDocumentation(OutputList&)
writeDetailedDescription(OutputList&,constQCString&)0 method0FileDef.writeDetailedDescription(OutputList&,constQCString&)
writeBriefDescription(OutputList&)0 method0FileDef.writeBriefDescription(OutputList&)
writeMemberDeclarations(OutputList&,MemberList::ListType ,constQCString&)0 method0NamespaceDef.writeMemberDeclarations(OutputList&,MemberList::ListType ,constQCString&)

Statistics

Stat   MethodsCallingMe   depth
Sum:03
Average:00.020833
Minimum:00
Maximum:01
Standard deviation:00.14283
Variance:00.020399
warningCritical    Rule warning: Potentially dead Fields
// <Name>Potentially dead Fields</Name>
warnif count > 0
from f in JustMyCode.Fields where
   
f.NbMethodsUsingMe == 0 && 
   
!f.IsPublic &&     // Although not recommended, public fields might be used by client applications of your Projects.
   !f.IsEnumValue   
  
   
// If you don't want to link CppDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.
select f

11 fields matched

fieldsFull Name
fieldsFull Name
dQFile.d
ungetcBufQTextStream.ungetcBuf
reserved_ptrQTextStream.reserved_ptr
forwardIndexQLatin1Codec.forwardIndex
dQXmlNamespaceSupport.d
dQXmlAttributes.d
dQXmlInputSource.d
dQXmlParseException.d
dQXmlLocator.d
dQXmlDefaultHandler.d
numDirEntry.num

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:

Visibility  
 0 2 0 

warningCritical    Rule warning: Fields should be declared as private
// <Name>Fields should be declared as private</Name>
warnif count > 0 from f in Application.Fields where 
 
!f.IsPrivate && 

 
// These conditions filter cases where fields 
 // doesn't represent state that should be encapsulated. 
 !f.IsGeneratedByCompiler && 
 
!f.IsEnumValue
select new { f }

1,398 fields matched

The following list of fields is truncated and contains only the first 100 fields of the 1398 fields matched. All matched fields could be listed in the report by unchecking the option:
CppDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a CQL Rule violated
It is recommended to use the CppDepend interactive UI capabilities to browse a large list of matched fields.
fieldsFull Name
fieldsFull Name
countQShared.count
dataQGArray+array_data.data
lenQGArray+array_data.len
FALSEqtoolsGlobalMembers.FALSE
TRUEqtoolsGlobalMembers.TRUE
systemWordSizeqtoolsGlobalMembers.systemWordSize
systemBigEndianqtoolsGlobalMembers.systemBigEndian
DefaultStreamVersionqtoolsGlobalMembers.DefaultStreamVersion
FIRST_DAYqtoolsGlobalMembers.FIRST_DAY
FIRST_YEARqtoolsGlobalMembers.FIRST_YEAR
SECS_PER_DAYqtoolsGlobalMembers.SECS_PER_DAY
MSECS_PER_DAYqtoolsGlobalMembers.MSECS_PER_DAY
SECS_PER_HOURqtoolsGlobalMembers.SECS_PER_HOUR
MSECS_PER_HOURqtoolsGlobalMembers.MSECS_PER_HOUR
SECS_PER_MINqtoolsGlobalMembers.SECS_PER_MIN
MSECS_PER_MINqtoolsGlobalMembers.MSECS_PER_MIN
monthDaysqtoolsGlobalMembers.monthDays
qt_cmp_si_sortSpecqtoolsGlobalMembers.qt_cmp_si_sortSpec
encoderqtoolsGlobalMembers.encoder
decoderqtoolsGlobalMembers.decoder
nobodyIDqtoolsGlobalMembers.nobodyID
cmp_item_sizeqtoolsGlobalMembers.cmp_item_size
op_findqtoolsGlobalMembers.op_find
op_insertqtoolsGlobalMembers.op_insert
op_replaceqtoolsGlobalMembers.op_replace
si_alreadyDoneqtoolsGlobalMembers.si_alreadyDone
si_wordSizeqtoolsGlobalMembers.si_wordSize
si_bigEndianqtoolsGlobalMembers.si_bigEndian
handlerqtoolsGlobalMembers.handler
suppressObsoleteqtoolsGlobalMembers.suppressObsolete
qt_winunicodeqtoolsGlobalMembers.qt_winunicode
sort_vecqtoolsGlobalMembers.sort_vec
ENDqtoolsGlobalMembers.END
PWSqtoolsGlobalMembers.PWS
PDGqtoolsGlobalMembers.PDG
CCLqtoolsGlobalMembers.CCL
CCNqtoolsGlobalMembers.CCN
CHRqtoolsGlobalMembers.CHR
BOLqtoolsGlobalMembers.BOL
EOLqtoolsGlobalMembers.EOL
BOWqtoolsGlobalMembers.BOW
EOWqtoolsGlobalMembers.EOW
ANYqtoolsGlobalMembers.ANY
CLOqtoolsGlobalMembers.CLO
OPTqtoolsGlobalMembers.OPT
MCCqtoolsGlobalMembers.MCC
MCDqtoolsGlobalMembers.MCD
MVLqtoolsGlobalMembers.MVL
PatOkqtoolsGlobalMembers.PatOk
PatNullqtoolsGlobalMembers.PatNull
PatSyntaxqtoolsGlobalMembers.PatSyntax
PatOverflowqtoolsGlobalMembers.PatOverflow
maxlenqtoolsGlobalMembers.maxlen
rxarrayqtoolsGlobalMembers.rxarray
ui_00qtoolsGlobalMembers.ui_00
ui_01qtoolsGlobalMembers.ui_01
ui_02qtoolsGlobalMembers.ui_02
ui_03qtoolsGlobalMembers.ui_03
ui_04qtoolsGlobalMembers.ui_04
ui_05qtoolsGlobalMembers.ui_05
ui_06qtoolsGlobalMembers.ui_06
ui_07qtoolsGlobalMembers.ui_07
ui_08qtoolsGlobalMembers.ui_08
ui_09qtoolsGlobalMembers.ui_09
ui_0AqtoolsGlobalMembers.ui_0A
ui_0BqtoolsGlobalMembers.ui_0B
ui_0CqtoolsGlobalMembers.ui_0C
ui_0DqtoolsGlobalMembers.ui_0D
ui_0EqtoolsGlobalMembers.ui_0E
ui_0FqtoolsGlobalMembers.ui_0F
ui_10qtoolsGlobalMembers.ui_10
ui_11qtoolsGlobalMembers.ui_11
ui_12qtoolsGlobalMembers.ui_12
ui_13qtoolsGlobalMembers.ui_13
ui_14qtoolsGlobalMembers.ui_14
ui_15qtoolsGlobalMembers.ui_15
ui_16qtoolsGlobalMembers.ui_16
ui_17qtoolsGlobalMembers.ui_17
ui_18qtoolsGlobalMembers.ui_18
ui_1EqtoolsGlobalMembers.ui_1E
ui_1FqtoolsGlobalMembers.ui_1F
ui_20qtoolsGlobalMembers.ui_20
ui_21qtoolsGlobalMembers.ui_21
ui_22qtoolsGlobalMembers.ui_22
ui_23qtoolsGlobalMembers.ui_23
ui_24qtoolsGlobalMembers.ui_24
ui_25qtoolsGlobalMembers.ui_25
ui_26qtoolsGlobalMembers.ui_26
ui_27qtoolsGlobalMembers.ui_27
ui_28qtoolsGlobalMembers.ui_28
ui_2EqtoolsGlobalMembers.ui_2E
ui_2FqtoolsGlobalMembers.ui_2F
ui_30qtoolsGlobalMembers.ui_30
ui_31qtoolsGlobalMembers.ui_31
ui_32qtoolsGlobalMembers.ui_32
ui_33qtoolsGlobalMembers.ui_33
ui_34qtoolsGlobalMembers.ui_34
ui_4DqtoolsGlobalMembers.ui_4D
ui_9FqtoolsGlobalMembers.ui_9F
ui_A4qtoolsGlobalMembers.ui_A4

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
warningCritical    Rule warning: Constructors of abstract classes should be declared as protected or private
// <Name>Constructors of abstract classes should be declared as protected or private</Name>
// Constructors of an abstract class can only be accessed from this class and derived class.
// Declaring such a constructor with another visibility level is useless and potentially misleading.

warnif count > 0
from t in Application.Types where 
  
t.IsClass && 
  
t.IsAbstract
let ctors = t.Constructors.Where(c => !c.IsProtected && !c.IsPrivate)
where ctors.Count() > 0
select new { t, ctors }

// Notice that if a constructor of an abstract class is declared as private,
// it can only be accessed from derived classes nested in the abstract class.

25 types matched

typesctorsFull Name
typesctorsFull Name
QIODevice1 methodQIODevice
QTextEncoder2 methodsQTextEncoder
QTextDecoder2 methodsQTextDecoder
QTextCodec1 methodQTextCodec
QXmlReader2 methodsQXmlReader
QXmlContentHandler2 methodsQXmlContentHandler
QXmlErrorHandler2 methodsQXmlErrorHandler
QXmlDTDHandler2 methodsQXmlDTDHandler
QXmlEntityResolver2 methodsQXmlEntityResolver
QXmlLexicalHandler2 methodsQXmlLexicalHandler
QXmlDeclHandler2 methodsQXmlDeclHandler
ConfigOption2 methodsConfigOption
IndexIntf2 methodsIndexIntf
LockableObj2 methodsLockableObj
DefinitionIntf2 methodsDefinitionIntf
Definition3 methodsDefinition
TextGeneratorIntf2 methodsTextGeneratorIntf
CodeOutputInterface2 methodsCodeOutputInterface
BaseOutputDocInterface2 methodsBaseOutputDocInterface
OutputGenerator1 methodOutputGenerator
OutputDocInterface1 methodOutputDocInterface
Translator1 methodTranslator
ParserInterface1 methodParserInterface
StorageIntf2 methodsStorageIntf
TranslatorAdapterBase2 methodsTranslatorAdapterBase

Statistics

Stat   ctors
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0

Purity - Immutability - Side-Effects  
 1 2 0 

warningCritical    Rule warning: Structures should be immutable
// <Name>Structures should be immutable</Name>
warnif count > 0 from t in Application.Types where 
   
t.IsStructure && 
  
!t.IsImmutable

let mutableFields = t.Fields.Where(f => !f.IsImmutable)

select new { t, t.NbLinesOfCode, mutableFields }

// It is deemed as a good practice to make 
// your structure immutable.
// An object is immutable if its state doesn’t 
// change once the object has been created. 
// Consequently, a structure is immutable if 
// its instances are immutable.
// Immutable types naturally simplify code by 
// limiting side-effects.
// See some explanations on immutability and 
// how NDepend supports it here:
// http://codebetter.com/blogs/patricksmacchia/archive/2008/01/13/immutable-types-understand-them-and-use-them.aspx

51 types matched

types# lines of code (LOC)mutableFieldsFull Name
types# lines of code (LOC)mutableFieldsFull Name
QShared31 fieldQShared
QGArray+array_data22 fieldsQGArray+array_data
QStringData65 fieldsQStringData
QDirSortItem02 fieldsQDirSortItem
QFileInfoCache02 fieldsQFileInfoCache
QCacheItem06 fieldsQCacheItem
QMapNodeBase84 fieldsQMapNodeBase
QMapNode<K,T>52 fieldsQMapNode<K,T>
QMultiByteUnicodeTable22 fieldsQMultiByteUnicodeTable
Anonymous03 fieldsAnonymous
QXmlSimpleReaderPrivate+ExternParameterEntity02 fieldsQXmlSimpleReaderPrivate+ExternParameterEntity
QXmlSimpleReaderPrivate+ExternEntity03 fieldsQXmlSimpleReaderPrivate+ExternEntity
yy_buffer_state010 fieldsyy_buffer_state
UsesClassDef54 fieldsUsesClassDef
BaseClassDef05 fieldsBaseClassDef
IncludeInfo24 fieldsIncludeInfo
MemberInfo07 fieldsMemberInfo
EntryCache06 fieldsEntryCache
FileCache03 fieldsFileCache
LookupInfo04 fieldsLookupInfo
ListItemInfo02 fieldsListItemInfo
BaseInfo03 fieldsBaseInfo
Argument136 fieldsArgument
DocInfo03 fieldsDocInfo
BriefInfo04 fieldsBriefInfo
BodyInfo13 fieldsBodyInfo
SourceReference02 fieldsSourceReference
SectionInfo77 fieldsSectionInfo
CommandMap02 fieldsCommandMap
yy_buffer_state010 fieldsyy_buffer_state
CallContext+Ctx04 fieldsCallContext+Ctx
yy_buffer_state010 fieldsyy_buffer_state
CondCtx03 fieldsCondCtx
yy_buffer_state010 fieldsyy_buffer_state
ConfigFileState05 fieldsConfigFileState
LabelMap02 fieldsLabelMap
yy_buffer_state010 fieldsyy_buffer_state
yy_buffer_state010 fieldsyy_buffer_state
PreproData04 fieldsPreproData
MD5Context03 fieldsMD5Context
Store+Node02 fieldsStore+Node
yy_buffer_state010 fieldsyy_buffer_state
TokenInfo013 fieldsTokenInfo
DocLexerContext05 fieldsDocLexerContext
ObjCache+CacheNode03 fieldsObjCache+CacheNode
ObjCache+HashNode04 fieldsObjCache+HashNode
STLInfo09 fieldsSTLInfo
yy_buffer_state010 fieldsyy_buffer_state
FileState06 fieldsFileState
yy_buffer_state010 fieldsyy_buffer_state
FindFileCacheElem02 fieldsFindFileCacheElem

Statistics

Stat   # lines of code (LOC)   mutableFields
Sum:540
Average:1.05880
Minimum:00
Maximum:130
Standard deviation:2.55460
Variance:6.5260
warningCritical    Rule warning: Avoid static fields with a mutable field type
// <Name>Avoid static fields with a mutable field type</Name>
warnif count > 0
from f in Application.Fields
where f.IsStatic && !f.IsEnumValue && !f.IsGeneratedByCompiler
let fieldType = f.FieldType
where fieldType != null && 
     
!fieldType.IsThirdParty && 
     
!fieldType.IsInterface && 
     
!fieldType.IsImmutable
select new { f, 
             
mutableFieldType = fieldType , 
             
isFieldImmutable = f.IsImmutable }

// As explained in this blog post
// http://codebetter.com/patricksmacchia/2011/05/04/back-to-basics-usage-of-static-members
// static fields should be used to hold only constant and immutable states.

219 fields matched

The following list of fields is truncated and contains only the first 100 fields of the 219 fields matched. All matched fields could be listed in the report by unchecking the option:
CppDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a CQL Rule violated
It is recommended to use the CppDepend interactive UI capabilities to browse a large list of matched fields.
fieldsmutableFieldTypeisFieldImmutableFull Name
fieldsmutableFieldTypeisFieldImmutableFull Name
sort_vecQGVectorFalseqtoolsGlobalMembers.sort_vec
resolvQChar+DirectionFalseqtoolsGlobalMembers.resolv
allQList<type>FalseqtoolsGlobalMembers.all
unicodevaluesAnonymousFalseqtoolsGlobalMembers.unicodevalues
reverseMapQArray<type>FalseqtoolsGlobalMembers.reverseMap
nullQStringFalseQString.null
shared_nullQStringDataFalseQString.shared_null
yy_current_bufferyy_buffer_stateFalseCppDependencyGlobalMembers.yy_current_buffer
yy_current_bufferyy_buffer_stateFalseCppDependencyGlobalMembers.yy_current_buffer
g_curClassNameQCStringFalseCppDependencyGlobalMembers.g_curClassName
g_curClassBasesQStrListFalseCppDependencyGlobalMembers.g_curClassBases
g_parmTypeQCStringFalseCppDependencyGlobalMembers.g_parmType
g_parmNameQCStringFalseCppDependencyGlobalMembers.g_parmName
g_exampleNameQCStringFalseCppDependencyGlobalMembers.g_exampleName
g_exampleFileQCStringFalseCppDependencyGlobalMembers.g_exampleFile
g_typeQCStringFalseCppDependencyGlobalMembers.g_type
g_castclassClassDefFalseCppDependencyGlobalMembers.g_castclass
g_arrayclassClassDefFalseCppDependencyGlobalMembers.g_arrayclass
g_nameQCStringFalseCppDependencyGlobalMembers.g_name
g_argsQCStringFalseCppDependencyGlobalMembers.g_args
g_classScopeQCStringFalseCppDependencyGlobalMembers.g_classScope
g_realScopeQCStringFalseCppDependencyGlobalMembers.g_realScope
g_scopeStackQStack<type>FalseCppDependencyGlobalMembers.g_scopeStack
g_methodStackQStack<type>FalseCppDependencyGlobalMembers.g_methodStack
g_methodArgsQList<type>FalseCppDependencyGlobalMembers.g_methodArgs
g_sourceFileDefFileDefFalseCppDependencyGlobalMembers.g_sourceFileDef
g_currentClassClassDefFalseCppDependencyGlobalMembers.g_currentClass
g_currentMemberDefMemberDefFalseCppDependencyGlobalMembers.g_currentMemberDef
g_currentMemberDefForTemplateMemberDefFalseCppDependencyGlobalMembers.g_currentMemberDefForTemplate
g_saveNameQCStringFalseCppDependencyGlobalMembers.g_saveName
g_saveTypeQCStringFalseCppDependencyGlobalMembers.g_saveType
currentContextMethodContextFalseCppDependencyGlobalMembers.currentContext
g_classScopeLengthStackQStack<type>FalseCppDependencyGlobalMembers.g_classScopeLengthStack
yy_current_bufferyy_buffer_stateFalseCppDependencyGlobalMembers.yy_current_buffer
g_inBufBufStrFalseCppDependencyGlobalMembers.g_inBuf
g_outBufBufStrFalseCppDependencyGlobalMembers.g_outBuf
g_fileNameQCStringFalseCppDependencyGlobalMembers.g_fileName
g_condStackQStack<type>FalseCppDependencyGlobalMembers.g_condStack
g_blockNameQCStringFalseCppDependencyGlobalMembers.g_blockName
g_aliasStringQCStringFalseCppDependencyGlobalMembers.g_aliasString
g_langSrcLangExtFalseCppDependencyGlobalMembers.g_lang
yy_current_bufferyy_buffer_stateFalseCppDependencyGlobalMembers.yy_current_buffer
yyFileNameQCStringFalseCppDependencyGlobalMembers.yyFileName
tmpStringQCStringFalseCppDependencyGlobalMembers.tmpString
sQCStringFalseCppDependencyGlobalMembers.s
lQStrListFalseCppDependencyGlobalMembers.l
elemStrQCStringFalseCppDependencyGlobalMembers.elemStr
includeNameQCStringFalseCppDependencyGlobalMembers.includeName
includePathListQStrListFalseCppDependencyGlobalMembers.includePathList
includeStackQStack<type>FalseCppDependencyGlobalMembers.includeStack
tabSizeStringQCStringFalseCppDependencyGlobalMembers.tabSizeString
maxInitLinesStringQCStringFalseCppDependencyGlobalMembers.maxInitLinesString
colsInAlphaIndexStringQCStringFalseCppDependencyGlobalMembers.colsInAlphaIndexString
enumValuesPerLineStringQCStringFalseCppDependencyGlobalMembers.enumValuesPerLineString
treeViewWidthStringQCStringFalseCppDependencyGlobalMembers.treeViewWidthString
maxDotGraphWidthStringQCStringFalseCppDependencyGlobalMembers.maxDotGraphWidthString
maxDotGraphHeightStringQCStringFalseCppDependencyGlobalMembers.maxDotGraphHeightString
encodingQCStringFalseCppDependencyGlobalMembers.encoding
configConfigFalseCppDependencyGlobalMembers.config
s_labelsLabelMapFalseCppDependencyGlobalMembers.s_labels
yy_current_bufferyy_buffer_stateFalseCppDependencyGlobalMembers.yy_current_buffer
scopeQCStringFalseCppDependencyGlobalMembers.scope
classNameQCStringFalseCppDependencyGlobalMembers.className
classTempListQCStringFalseCppDependencyGlobalMembers.classTempList
funcTempListQCStringFalseCppDependencyGlobalMembers.funcTempList
typeQCStringFalseCppDependencyGlobalMembers.type
nameQCStringFalseCppDependencyGlobalMembers.name
argsQCStringFalseCppDependencyGlobalMembers.args
tmpTypeQCStringFalseCppDependencyGlobalMembers.tmpType
exceptionStringQCStringFalseCppDependencyGlobalMembers.exceptionString
yy_current_bufferyy_buffer_stateFalseCppDependencyGlobalMembers.yy_current_buffer
g_argListArgumentListFalseCppDependencyGlobalMembers.g_argList
g_copyArgValueQCStringFalseCppDependencyGlobalMembers.g_copyArgValue
g_curArgTypeNameQCStringFalseCppDependencyGlobalMembers.g_curArgTypeName
g_curArgDefValueQCStringFalseCppDependencyGlobalMembers.g_curArgDefValue
g_curArgNameQCStringFalseCppDependencyGlobalMembers.g_curArgName
g_curArgDocsQCStringFalseCppDependencyGlobalMembers.g_curArgDocs
g_curArgAttribQCStringFalseCppDependencyGlobalMembers.g_curArgAttrib
g_curArgArrayQCStringFalseCppDependencyGlobalMembers.g_curArgArray
g_extraTypeCharsQCStringFalseCppDependencyGlobalMembers.g_extraTypeChars
yy_current_bufferyy_buffer_stateFalseCppDependencyGlobalMembers.yy_current_buffer
g_fileNameQStringFalseCppDependencyGlobalMembers.g_fileName
g_definitionDefinitionFalseCppDependencyGlobalMembers.g_definition
g_secLabelQCStringFalseCppDependencyGlobalMembers.g_secLabel
g_secTitleQCStringFalseCppDependencyGlobalMembers.g_secTitle
g_secTypeSectionInfo+SectionTypeFalseCppDependencyGlobalMembers.g_secType
g_endMarkerQCStringFalseCppDependencyGlobalMembers.g_endMarker
g_lexerStackQStack<type>FalseCppDependencyGlobalMembers.g_lexerStack
classEntriesQDict<type>FalseCppDependencyGlobalMembers.classEntries
excludeNameDictStringDictFalseCppDependencyGlobalMembers.excludeNameDict
compoundKeywordDictQDict<type>FalseCppDependencyGlobalMembers.compoundKeywordDict
outputListOutputListFalseCppDependencyGlobalMembers.outputList
g_usingDeclarationsQDict<type>FalseCppDependencyGlobalMembers.g_usingDeclarations
g_stlinfoSTLInfoFalseCppDependencyGlobalMembers.g_stlinfo
g_memberIndexLetterUsedMemberIndexListFalseCppDependencyGlobalMembers.g_memberIndexLetterUsed
g_fileIndexLetterUsedMemberIndexListFalseCppDependencyGlobalMembers.g_fileIndexLetterUsed
g_namespaceIndexLetterUsedMemberIndexListFalseCppDependencyGlobalMembers.g_namespaceIndexLetterUsed
outputFormatQCStringFalseCppDependencyGlobalMembers.outputFormat
yy_current_bufferyy_buffer_stateFalseCppDependencyGlobalMembers.yy_current_buffer
g_yyFileNameQCStringFalseCppDependencyGlobalMembers.g_yyFileName

Statistics

Stat   mutableFieldType   isFieldImmutable
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00

Naming Conventions  
 5 4 0 

warningCritical    Rule warning: Instance fields should be prefixed with a 'm_'
// <Name>Instance fields should be prefixed with a 'm_'</Name>
warnif count > 0 (from f in Fields where 
  
!f.NameLike (@"^m_") && 
  
!f.IsStatic  
  
// Don't hesitate to customize the regex of NameLike to your preference. 
 && !f.IsGlobal
select new { f }).Take(10)

10 fields matched

fieldsFull Name
fieldsFull Name
tm_sectm.tm_sec
tm_mintm.tm_min
tm_hourtm.tm_hour
tm_mdaytm.tm_mday
tm_montm.tm_mon
tm_yeartm.tm_year
wYear_SYSTEMTIME.wYear
wMonth_SYSTEMTIME.wMonth
wDay_SYSTEMTIME.wDay
wHour_SYSTEMTIME.wHour

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
warningCritical    Rule warning: Static fields should be prefixed with a 's_'
// <Name>Static fields should be prefixed with a 's_'</Name>
   warnif count > 0 (from f in Fields where 
  
!f.NameLike (@"^s_") && 
  
f.IsStatic
  
select new { f }).Take(10)  
  
// Don't hesitate to customize the regex of NameLike to your preference.


10 fields matched

fieldsFull Name
fieldsFull Name
systemWordSizeqtoolsGlobalMembers.systemWordSize
systemBigEndianqtoolsGlobalMembers.systemBigEndian
DefaultStreamVersionqtoolsGlobalMembers.DefaultStreamVersion
FIRST_DAYqtoolsGlobalMembers.FIRST_DAY
FIRST_YEARqtoolsGlobalMembers.FIRST_YEAR
SECS_PER_DAYqtoolsGlobalMembers.SECS_PER_DAY
MSECS_PER_DAYqtoolsGlobalMembers.MSECS_PER_DAY
SECS_PER_HOURqtoolsGlobalMembers.SECS_PER_HOUR
MSECS_PER_HOURqtoolsGlobalMembers.MSECS_PER_HOUR
SECS_PER_MINqtoolsGlobalMembers.SECS_PER_MIN

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
warningCritical    Rule warning: Types name should begin with an Upper character
// <Name>Types name should begin with an Upper character</Name>
warnif count > 0 (from t in Types where 
 
!t.NameLike (@"^[A-Z]")      // The name of a type should begin with an Upper letter.
  && // Except if it is generated by compiler or ...
 !t.IsThirdParty && !t.IsGlobal
select new { t, t.NbLinesOfCode }).Take(10)

9 types matched

types# lines of code (LOC)Full Name
types# lines of code (LOC)Full Name
yy_buffer_state0yy_buffer_state
yy_buffer_state0yy_buffer_state
yy_buffer_state0yy_buffer_state
yy_buffer_state0yy_buffer_state
yy_buffer_state0yy_buffer_state
yy_buffer_state0yy_buffer_state
yy_buffer_state0yy_buffer_state
yy_buffer_state0yy_buffer_state
yy_buffer_state0yy_buffer_state

Statistics

Stat   # lines of code (LOC)
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
warningCritical    Rule warning: Avoid methods with name too long
// <Name>Avoid methods with name too long</Name>
warnif count > 0 from m in Application.Methods where 
 
!m.IsGeneratedByCompiler 
  
&& m.SimpleName.Length > 35

select new { m, m.SimpleName }

// The regex matches methods with name longer 
// than 35 characters.
// Method Name doesn't contain the type and namespace 
// prefix, FullName does.
// The regex computes the method name length from 
// the beginning until the first open parenthesis 
// or first lower than (for generic methods).
      

22 methods matched

methodsSimpleNameFull Name
methodsSimpleNameFull Name
doctokenizerYYsetStateTitleAttrValue()doctokenizerYYsetStateTitleAttrValueCppDependencyGlobalMembers.doctokenizerYYsetStateTitleAttrValue()
transferRelatedFunctionDocumentation()transferRelatedFunctionDocumentationCppDependencyGlobalMembers.transferRelatedFunctionDocumentation()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslator.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorDecoder.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorEnglish.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorAdapter_1_5_4.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorDutch.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorCzech.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorItalian.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorGerman.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorSpanish.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorFinnish.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorRussian.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorCroatian.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorKorean.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorChinese.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorChinesetraditional.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorBrazilian.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorSerbian.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorCatalan.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorPersian.trMemberFunctionDocumentationFortran()
trMemberFunctionDocumentationFortran()trMemberFunctionDocumentationFortranTranslatorMacedonian.trMemberFunctionDocumentationFortran()

Statistics

Stat   SimpleName
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0

Source Files Organization  
 2 2 0 

warningCritical    Rule warning: Avoid defining multiple types in a source file
// <Name>Avoid defining multiple types in a source file</Name>
warnif count > 0 

// Build a lookup indexed by source files, values being a sequence of types defined in the source file.
let lookup = Application.Types.Where(t => 
                                
!t.IsGlobal && 
                               
// except nested types and types generated by compilers!
                               !t.IsGeneratedByCompiler &&                               
                               
!t.IsNested)                                
                         
// It could make sense to not apply this rule for enumerations.
                         // && !t.IsEnumeration)

            
// We use multi-key, since a type can be declared in multiple source files.
           .ToMultiKeyLookup(t => t.SourceDecls.Select(d => d.SourceFile))
 
from @group in lookup where @group.Count() > 1
   
let sourceFile = @group.Key

   
// CQLinq doesn't let indexing result with sourceFile 
   // so we choose a typeIndex in types, 
   // preferably the type that has the file name.
   let typeWithSourceFileName = @group.FirstOrDefault(t => t.SimpleName == sourceFile.FileNameWithoutExtension)
   
let typeIndex = typeWithSourceFileName ?? @group.First()

select new { typeIndex, 
             
types = @group as IEnumerable<IType>, 
             
sourceFile.FilePathString }

61 types matched

typestypesFilePathStringFull Name
typestypesFilePathStringFull Name
QChar5 typesc:\doxygen-1.5.7.3\qtools\qstring.hQChar
QDate3 typesc:\doxygen-1.5.7.3\qtools\qdatetime.hQDate
QLNode3 typesc:\doxygen-1.5.7.3\qtools\qglist.hQLNode
QList<type>2 typesc:\doxygen-1.5.7.3\qtools\qlist.hQList<type>
QStrList2 typesc:\doxygen-1.5.7.3\qtools\qstrlist.hQStrList
QDir2 typesc:\doxygen-1.5.7.3\qtools\qdir.hQDir
QValueListNode<T>5 typesc:\doxygen-1.5.7.3\qtools\qvaluelist.hQValueListNode<T>
QBaseBucket7 typesc:\doxygen-1.5.7.3\qtools\qgdict.hQBaseBucket
QGCache2 typesc:\doxygen-1.5.7.3\qtools\qgcache.hQGCache
QDict<type>2 typesc:\doxygen-1.5.7.3\qtools\qasciidict.hQDict<type>
QCacheItem4 typesc:\doxygen-1.5.7.3\qtools\qgcache.cppQCacheItem
QMapNodeBase7 typesc:\doxygen-1.5.7.3\qtools\qmap.hQMapNodeBase
QTextEncoder3 typesc:\doxygen-1.5.7.3\qtools\qtextcodec.hQTextEncoder
QLigature2 typesc:\doxygen-1.5.7.3\qtools\qstring.cppQLigature
QTextStream4 typesc:\doxygen-1.5.7.3\qtools\qtextstream.hQTextStream
QTextStatelessEncoder9 typesc:\doxygen-1.5.7.3\qtools\qtextcodec.cppQTextStatelessEncoder
QTextStreamPrivate2 typesc:\doxygen-1.5.7.3\qtools\qtextstream.cppQTextStreamPrivate
QUtf8Codec2 typesc:\doxygen-1.5.7.3\qtools\qutfcodec.hQUtf8Codec
QUtf8Decoder3 typesc:\doxygen-1.5.7.3\qtools\qutfcodec.cppQUtf8Decoder
QXmlNamespaceSupport14 typesc:\doxygen-1.5.7.3\qtools\qxml.hQXmlNamespaceSupport
QXmlNamespaceSupportPrivate7 typesc:\doxygen-1.5.7.3\qtools\qxml.cppQXmlNamespaceSupportPrivate
QCache<type>2 typesc:\doxygen-1.5.7.3\qtools\qcache.hQCache<type>
QIntDict<type>2 typesc:\doxygen-1.5.7.3\qtools\qintdict.hQIntDict<type>
QPtrDict<type>2 typesc:\doxygen-1.5.7.3\qtools\qptrdict.hQPtrDict<type>
QStrVec2 typesc:\doxygen-1.5.7.3\qtools\qstrvec.hQStrVec
MemberList4 typesc:\doxygen-1.5.7.3\src\memberlist.hMemberList
ClassDef7 typesc:\doxygen-1.5.7.3\src\classdef.hClassDef
ClassList4 typesc:\doxygen-1.5.7.3\src\classlist.hClassList
ConfigOption9 typesc:\doxygen-1.5.7.3\src\config.hConfigOption
IncludeInfo7 typesc:\doxygen-1.5.7.3\src\filedef.hIncludeInfo
MemberName7 typesc:\doxygen-1.5.7.3\src\membername.hMemberName
FileName5 typesc:\doxygen-1.5.7.3\src\filename.hFileName
NamespaceDef5 typesc:\doxygen-1.5.7.3\src\namespacedef.hNamespaceDef
DirList7 typesc:\doxygen-1.5.7.3\src\dirdef.hDirList
EntryCache5 typesc:\doxygen-1.5.7.3\src\doxygen.hEntryCache
IndexIntf8 typesc:\doxygen-1.5.7.3\src\index.hIndexIntf
Protection11 typesc:\doxygen-1.5.7.3\src\entry.hProtection
LockableObj2 typesc:\doxygen-1.5.7.3\src\lockingptr.hLockableObj
DocInfo7 typesc:\doxygen-1.5.7.3\src\definition.hDocInfo
SList<T>4 typesc:\doxygen-1.5.7.3\src\sortdict.hSList<T>
SourceReference2 typesc:\doxygen-1.5.7.3\src\memberdef.hSourceReference
TextGeneratorIntf3 typesc:\doxygen-1.5.7.3\src\util.hTextGeneratorIntf
SectionInfo2 typesc:\doxygen-1.5.7.3\src\section.hSectionInfo
CodeOutputInterface4 typesc:\doxygen-1.5.7.3\src\outputgen.hCodeOutputInterface
CommandMap5 typesc:\doxygen-1.5.7.3\src\cmdmapper.hCommandMap
yy_buffer_state4 typesc:\doxygen-1.5.7.3\src\code.cppyy_buffer_state
yy_buffer_state2 typesc:\doxygen-1.5.7.3\src\commentcnv.cppyy_buffer_state
yy_buffer_state2 typesc:\doxygen-1.5.7.3\src\config.cppyy_buffer_state
LabelMap2 typesc:\doxygen-1.5.7.3\src\debug.cppLabelMap
Define5 typesc:\doxygen-1.5.7.3\src\define.hDefine
ParserInterface2 typesc:\doxygen-1.5.7.3\src\parserintf.hParserInterface
StorageIntf2 typesc:\doxygen-1.5.7.3\src\store.hStorageIntf
FileStorage2 typesc:\doxygen-1.5.7.3\src\marshal.hFileStorage
yy_buffer_state2 typesc:\doxygen-1.5.7.3\src\doctokenizer.cppyy_buffer_state
Tokens2 typesc:\doxygen-1.5.7.3\src\doctokenizer.hTokens
STLInfo2 typesc:\doxygen-1.5.7.3\src\doxygen.cppSTLInfo
MemberIndexList2 typesc:\doxygen-1.5.7.3\src\index.cppMemberIndexList
TranslatorAdapterBase10 typesc:\doxygen-1.5.7.3\src\translator_adapter.hTranslatorAdapterBase
yy_buffer_state2 typesc:\doxygen-1.5.7.3\src\pre.cppyy_buffer_state
TemplateCtx2 typesc:\doxygen-1.5.7.3\src\util.cppTemplateCtx
XmlSectionMapper4 typesc:\doxygen-1.5.7.3\src\xmlgen.cppXmlSectionMapper

Statistics

Stat   types   FilePathString
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00
warningCritical    Rule warning: Types declared in the same namespace, should have their source files stored in the same directory
// <Name>Types declared in the same namespace, should have their source files stored in the same directory</Name>
warnif count > 0 
from @namespace in Application.Namespaces

// Group types of @namespace in a lookup 
// where groups are keyed with directories that contain the types' source file(s).
// Note that a type can be contained in several groups 
// if it is declared in several source files stored in different directories.
let lookup = @namespace.ChildTypes.Where(t => !t.IsGlobal && JustMyCode.Contains(t))
            
.ToMultiKeyLookup(
               
t => t.SourceDecls.Select(
                          
decl => decl.SourceFile.FilePath.ParentDirectoryPath).Distinct()
            
)

// Are types of @namespaces declared in more than one directory?
where lookup.Count > 1

// Infer the main directory, preferably the one that has the same name as the namespace.
let dirs = lookup.Select(types => types.Key)
let mainDirNullable = dirs.Where(d => d.DirectoryName == @namespace.SimpleName).FirstOrDefault()
let mainDir = mainDirNullable ?? dirs.First()

// Types declared out of mainDir, are types in group of types declared in a directory different than mainDir!
let typesDeclaredOutOfMainDir = lookup.Where(types => types.Key != mainDir)
                                
.SelectMany(types => types)
                                
                                
// Filter types declared on several source files that contain generated methods 
                                // because typically such type contains one or several partial definitions generated.
                                // These partially generated types would be false positive for the present rule.
                                .Where(t => t.SourceDecls.Count() == 1 ||
                                            
t.Methods.Count(m => JustMyCode.Contains(m)) == 0)

where typesDeclaredOutOfMainDir.Count() > 0

select new { @namespace, 

             
// Typically a type in typesDeclaredOutOfMainDir ...
             // 1) ... is contained in the wrong namespace but its source file(s) is stored in the right directory.
             //      --> In such situation the type parent namespace should be the namespace corresponding to the directory.
             // 2) ... is contained in the right namespace but its source file(s) is stored in the wrong directory
             //      --> In such situation the type source file should be moved to mainDir.
             // 3) ... is declared in multiple source files, stored in different directories.
             //      --> It would be preferable that all source files are stored in a single directory.
             typesDeclaredOutOfMainDir , 

             
mainDir = mainDir.ToString() }

1 namespaces matched

namespacetypesDeclaredOutOfMainDirmainDirFull Name
namespacetypesDeclaredOutOfMainDirmainDirFull Name
1 typec:\doxygen-1.5.7.3\src

Statistics

Stat   typesDeclaredOutOfMainDir   mainDir
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00

Object Oriented Design

Base class should not use derivatives
// <Name>Base class should not use derivatives</Name>
warnif count > 0 
from baseClass in JustMyCode.Types
where baseClass.IsClass && baseClass.NbChildren > 0 // <-- for optimization!
let derivedClassesUsed = baseClass.DerivedTypes.UsedBy(baseClass)
where derivedClassesUsed.Count() > 0
select new { baseClass, derivedClassesUsed }

2 types matched

typesderivedClassesUsedFull Name
typesderivedClassesUsedFull Name
QTextCodec2 typesQTextCodec
Definition2 typesDefinition

Statistics

Stat   derivedClassesUsed
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
Class shouldn't be too deep in inheritance tree
// <Name>Class shouldn't be too deep in inheritance tree</Name>
warnif count > 0 from t in JustMyCode.Types 
where t.IsClass
let baseClasses = t.BaseClasses.ExceptThirdParty()

// Warn for classes with 3 or more base classes.
// Notice that we don't count third-party classes 
// because this rule concerns your code design,
// not third-party libraries consumed design.
where baseClasses.Count() >= 3

select new { t, baseClasses, 
                
// The metric value DepthOfInheritance takes account
                // of third-party base classes
                t.DepthOfInheritance } 

// Branches too long in the derivation should be avoided.
// See the definition of the DepthOfInheritance metric here 
// http://www.cppdepend.com/Metrics.aspx#DIT

70 types matched

typesbaseClassesDepth of inheritanceFull Name
typesbaseClassesDepth of inheritanceFull Name
QStrList3 types3QStrList
QStrIList4 types4QStrIList
QCList3 types3QCList
QGDItList3 types3QGDItList
QXmlDefaultHandler6 types1QXmlDefaultHandler
QSortedList<type>3 types3QSortedList<type>
QStrVec3 types3QStrVec
QStrIVec4 types4QStrIVec
MemberList3 types3MemberList
MemberDict3 types3MemberDict
ClassDef3 types2ClassDef
UsesClassDict3 types3UsesClassDict
BaseClassList3 types3BaseClassList
ClassList3 types3ClassList
ClassDict3 types3ClassDict
FileDef3 types2FileDef
FileList3 types3FileList
OutputNameList3 types3OutputNameList
OutputNameDict3 types3OutputNameDict
MemberName3 types3MemberName
MemberNameInfo3 types3MemberNameInfo
FileName4 types4FileName
FileNameList3 types3FileNameList
FileNameDict3 types3FileNameDict
NamespaceDef3 types2NamespaceDef
NamespaceList3 types3NamespaceList
NamespaceDict3 types3NamespaceDict
DirList3 types3DirList
DirDef3 types2DirDef
StringDict3 types3StringDict
ArgumentList3 types3ArgumentList
DefinitionList4 types3DefinitionList
SList<T>3 types3SList<T>
SIntList<T>3 types3SIntList<T>
MemberDef3 types2MemberDef
SectionDict3 types3SectionDict
OutputList3 types3OutputList
DefineList3 types3DefineList
DefineName3 types3DefineName
DefineNameList3 types3DefineNameList
FileStorage3 types2FileStorage
MemberIndexList3 types3MemberIndexList
PrefixIgnoreClassList4 types4PrefixIgnoreClassList
TranslatorAdapter_1_4_63 types3TranslatorAdapter_1_4_6
TranslatorAdapter_1_4_14 types4TranslatorAdapter_1_4_1
TranslatorAdapter_1_3_95 types5TranslatorAdapter_1_3_9
TranslatorAdapter_1_3_86 types6TranslatorAdapter_1_3_8
TranslatorAdapter_1_3_37 types7TranslatorAdapter_1_3_3
TranslatorAdapter_1_3_18 types8TranslatorAdapter_1_3_1
TranslatorAdapter_1_39 types9TranslatorAdapter_1_3
TranslatorAdapter_1_2_1810 types10TranslatorAdapter_1_2_18
TranslatorSwedish4 types4TranslatorSwedish
TranslatorFrench3 types3TranslatorFrench
TranslatorIndonesian4 types4TranslatorIndonesian
TranslatorJapanese3 types3TranslatorJapanese
TranslatorSpanish3 types3TranslatorSpanish
TranslatorPolish4 types4TranslatorPolish
TranslatorPortuguese8 types8TranslatorPortuguese
TranslatorHungarian4 types4TranslatorHungarian
TranslatorRomanian5 types5TranslatorRomanian
TranslatorSlovene4 types4TranslatorSlovene
TranslatorNorwegian4 types4TranslatorNorwegian
TranslatorDanish3 types3TranslatorDanish
TranslatorSlovak11 types11TranslatorSlovak
TranslatorUkrainian5 types5TranslatorUkrainian
TranslatorGreek3 types3TranslatorGreek
TranslatorLithuanian4 types4TranslatorLithuanian
TranslatorAfrikaans4 types4TranslatorAfrikaans
TranslatorArabic4 types4TranslatorArabic
XmlSectionMapper3 types3XmlSectionMapper

Statistics

Stat   baseClasses   Depth of inheritance
Sum:0260
Average:03.7143
Minimum:01
Maximum:011
Standard deviation:01.79
Variance:03.2041
Constructor should not call a virtual methods
// <Name>Constructor should not call a virtual methods</Name>

// Returns constructor of a non-sealed type calling virtual methods.
// In such a situation, if a derived class overrides the method,
// then the override method will be called before the derived constructor.
// This makes the class fragile to derive from.
//
// Violations reported can be solved by re-designing object initialisation
// or by marking the parent class as sealed, if possible.

warnif count > 0
from t in Application.Types where 
   
t.IsClass &&
  
!t.IsGeneratedByCompiler

from ctor in t.Constructors 
let virtualMethodsCalled = from mCalled in ctor.MethodsCalled
                           
where mCalled.IsVirtual &&
                                
(mCalled.ParentType == t ||
                                 
t.DeriveFrom(mCalled.ParentType))
                           
select mCalled
where virtualMethodsCalled.Count() > 0

select new { ctor , 
             
virtualMethodsCalled, 
             
// If there is no derived type, it might be 
             // an opportunity to mark t as sealed.
             t.DerivedTypes }

8 methods matched

methodsvirtualMethodsCalledDerivedTypesFull Name
methodsvirtualMethodsCalledDerivedTypesFull Name
QGArray()1 method1 typeQGArray.QGArray()
QGArray(int)1 method1 typeQGArray.QGArray(int)
QFileInfo(constQDir&,constQString&)1 method0 typeQFileInfo.QFileInfo(constQDir&,constQString&)
QGVector(constQGVector&)1 method3 typesQGVector.QGVector(constQGVector&)
QTextCodecFromIOD(QIODevice*)1 method0 typeQTextCodecFromIOD.QTextCodecFromIOD(QIODevice*)
QXmlInputSource(QTextStream&)2 methods0 typeQXmlInputSource.QXmlInputSource(QTextStream&)
LockingPtr<T>(constLockableObj*,constT*)1 method0 typeLockingPtr<T>.LockingPtr<T>(constLockableObj*,constT*)
TranslatorDecoder(Translator*)1 method0 typeTranslatorDecoder.TranslatorDecoder(Translator*)

Statistics

Stat   virtualMethodsCalled   DerivedTypes
Sum:00
Average:00
Minimum:00
Maximum:00
Standard deviation:00
Variance:00
Avoid the Singleton pattern
//<Name>Avoid the Singleton pattern</Name>
warnif count > 0
from t in Application.Types
where !t.IsStatic && !t.IsAbstract && (t.IsClass || t.IsStructure)

// All ctors of a singleton are private
where t.Constructors.Where(ctor => !ctor.IsPrivate).Count() == 0

// A singleton contains one static field of its parent type, to reference the unique instance
let staticFieldInstances = t.StaticFields.WithFieldType(t)
where staticFieldInstances.Count() == 1
select new { t, staticFieldInstance = staticFieldInstances.First() }

// The Singleton pattern consists in syntactically enforcing that a class 
// has just one unique instance.
// At first glance, this pattern looks appealing and it is widely used.
// However, we discourage you from using singleton classes because experience
// shows that singletons often result in less testable and less maintainable code.
// More details available in these discussions:
//  http://codebetter.com/patricksmacchia/2011/05/04/back-to-basics-usage-of-static-members/
//  http://adamschepis.com/blog/2011/05/02/im-adam-and-im-a-recovering-singleton-addict/

No types matched

Don't assign static fields from instance methods
// <Name>Don't assign static fields from instance methods</Name>
// Assigning static fields from instance methods leads to
// poorly maintainable and non thread-safe code.
// It is advised to assign static fields inline or from class constructor.
warnif count > 0
from f in Application.Fields where 
  
f.IsStatic &&
 
!f.IsGeneratedByCompiler && !f.IsGlobal
 
let assignedBy = f.MethodsAssigningMe.Where(m => !m.IsStatic)
where assignedBy .Count() > 0
select new { f, assignedBy }

38 fields matched

fieldsassignedByFull Name
fieldsassignedByFull Name
null1 methodQString.null
shared_null2 methodsQString.shared_null
floatfield1 methodQTextStream.floatfield
classSDict2 methodsDoxygen.classSDict
hiddenClasses1 methodDoxygen.hiddenClasses
externalReferences2 methodsDoxygen.externalReferences
externalmlist1 methodDoxygen.externalmlist
externalinputFilesDict2 methodsDoxygen.externalinputFilesDict
allinputFilesDict1 methodDoxygen.allinputFilesDict
duplicateClasses1 methodDoxygen.duplicateClasses
filesTogenerate1 methodDoxygen.filesTogenerate
filesPreprocessed1 methodDoxygen.filesPreprocessed
idlfiles1 methodDoxygen.idlfiles
includeNameDict1 methodDoxygen.includeNameDict
inputNameDict1 methodDoxygen.inputNameDict
inputNameList2 methodsDoxygen.inputNameList
memberNameSDict3 methodsDoxygen.memberNameSDict
functionNameSDict3 methodsDoxygen.functionNameSDict
namespaceSDict4 methodsDoxygen.namespaceSDict
globalScope4 methodsDoxygen.globalScope
htmlFileExtension1 methodDoxygen.htmlFileExtension
parseSourcesNeeded1 methodDoxygen.parseSourcesNeeded
symbolMap2 methodsDoxygen.symbolMap
outputToWizard1 methodDoxygen.outputToWizard
lookupCache1 methodDoxygen.lookupCache
directories3 methodsDoxygen.directories
parserManager1 methodDoxygen.parserManager
suppressDocWarnings6 methodsDoxygen.suppressDocWarnings
symbolCache1 methodDoxygen.symbolCache
symbolStorage1 methodDoxygen.symbolStorage
isPragma2 methodsDoxygen.isPragma
fileDictionary1 methodDoxygen.fileDictionary
fileIndex1 methodDoxygen.fileIndex
CacheFilesDict1 methodDoxygen.CacheFilesDict
StorageFilesDict1 methodDoxygen.StorageFilesDict
Koi8RToWindows1251Tab1 methodTranslator.Koi8RToWindows1251Tab
Windows1251ToKoi8RTab1 methodTranslator.Windows1251ToKoi8RTab
misses1 methodObjCache.misses

Statistics

Stat   assignedBy
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0
Avoid Abstract Classes with too many methods
// <Name>Avoid Abstract Classes with too many methods</Name>
// An abstract class  should abstract a clear and well-defined concept.
// Such concept shoudln't be represented with too many methods and property getter.
warnif count > 0 from t in JustMyCode.Types where 
  
t.IsAbstract
let methodsAndGetters = t.Methods
where methodsAndGetters.Count() > 10
select new { t, methodsAndGetters }

10 types matched

typesmethodsAndGettersFull Name
typesmethodsAndGettersFull Name
QIODevice41 methodsQIODevice
QTextCodec26 methodsQTextCodec
QXmlReader21 methodsQXmlReader
QXmlContentHandler14 methodsQXmlContentHandler
ConfigOption17 methodsConfigOption
Definition72 methodsDefinition
CodeOutputInterface13 methodsCodeOutputInterface
BaseOutputDocInterface60 methodsBaseOutputDocInterface
OutputGenerator110 methodsOutputGenerator
Translator224 methodsTranslator

Statistics

Stat   methodsAndGetters
Sum:0
Average:0
Minimum:0
Maximum:0
Standard deviation:0
Variance:0

API Breaking Changes

API Breaking Changes: Types
// <Name>API Breaking Changes: Types</Name>
// This rule warns if a publicly visible type is 
// not publicly visible anymore or if it has been removed.
// Such type can break the code of your clients.

warnif count > 0 from t in codeBase.OlderVersion().Application.Types
where t.IsPublic && 

     
// The type has been removed and its parent project hasn't been removed ...
     ( (t.WasRemoved() && !t.ParentProject.WasRemoved()) ||

     
// ... or the type is not publicly visible anymore
       !t.WasRemoved() && !t.NewerVersion().IsPublic)

select new { t,
             
NewVisibility = (t.WasRemoved() ? " " : t.NewerVersion().Visibility.ToString()) }

No types matched

API Breaking Changes: Methods
// <Name>API Breaking Changes: Methods</Name>
// This rule warns if a publicly visible method is 
// not publicly visible anymore or if it has been removed.
// Such method can break the code of your clients.

warnif count > 0 from m in codeBase.OlderVersion().Application.Methods
where m.IsPublic && 

     
// The method has been removed and its parent type hasn't been removed ...
     ( (m.WasRemoved() && !m.ParentType.WasRemoved()) ||

     
// ... or the method is not publicly visible anymore
       !m.WasRemoved() && !m.NewerVersion().IsPublic)

select new { m,
             
NewVisibility = (m.WasRemoved() ? " " : m.NewerVersion().Visibility.ToString()) }

No methods matched

API Breaking Changes: Fields
// <Name>API Breaking Changes: Fields</Name>
// This rule warns if a publicly visible field is 
// not publicly visible anymore or if it has been removed.
// Such field can break the code of your clients.

warnif count > 0 from f in codeBase.OlderVersion().Application.Fields
where f.IsPublic &&

     
// The field has been removed and its parent type hasn't been removed ...
     ( (f.WasRemoved() && !f.ParentType.WasRemoved()) ||

     
// ... or the field is not publicly visible anymore
       !f.WasRemoved() && !f.NewerVersion().IsPublic)

select new { f,
             
NewVisibility = (f.WasRemoved() ? " " : f.NewerVersion().Visibility.ToString()) }

No fields matched

API Breaking Changes: Interfaces and Abstract Classes
// <Name>API Breaking Changes: Interfaces and Abstract Classes</Name>
// This rule warns if a publicly visible interface or abstract class 
// has been changed and contains new abstract methods or 
// if some abstract methods have been removed.
// This can break the code of clients 
// that implement such interface or derive from such abstract class.

warnif count > 0 from tNewer in Application.Types where 
 
(tNewer.IsInterface || tNewer.IsClass && tNewer.IsAbstract) && 
  
tNewer.IsPublic && 
  
tNewer.IsPresentInBothBuilds()

let tOlder = tNewer.OlderVersion() where tOlder.IsPublic

let methodsRemoved = tOlder.Methods.Where(m => m.IsAbstract && m.WasRemoved())
let methodsAdded = tNewer.Methods.Where(m => m.IsAbstract && m.WasAdded())

where methodsAdded.Count() > 0 || methodsRemoved.Count() > 0
select new { tNewer, methodsAdded, methodsRemoved }

No types matched

Avoid transforming immutable types into mutable types
// <Name>Avoid transforming immutable types into mutable types</Name>

// Immutability is a strong property on a type.
// Breaking immutability can result in serious problem for an algorithm consummer
// that has been written taking account of the type immutability.

// To visualize changes in code, right-click a matched type and select:
//  - Compare older and newer versions of source file
//  - Compare older and newer versions disassembled with Reflector

warnif count > 0 
from t in Application.Types where
  
t.IsPresentInBothBuilds() &&
 
!t.IsStatic &&
 
!t.IsImmutable && 
  
t.OlderVersion().IsImmutable

let mutableFields = from f in t.InstanceFields where !f.IsImmutable select f

select new { t, mutableFields }

No types matched

API: New publicly visible types
// <Name>API: New publicly visible types</Name>
// List types that are new in the public surface of your Projects

from t in Application.Types
where t.IsPublic && 

     
// The type has been removed and its parent project hasn't been removed ...
     ( (t.WasAdded() && !t.ParentProject.WasAdded()) ||

     
// ... or the type existed but was not publicly visible
       !t.WasAdded() && !t.OlderVersion().IsPublic)

select new { t,
             
OldVisibility = (t.WasAdded() ? " " : t.OlderVersion().Visibility.ToString()) }

No types matched

API: New publicly visible methods
// <Name>API: New publicly visible methods</Name>
// List methods that are new in the public surface of your Projects

from m in Application.Methods
where m.IsPublic && 

     
// The method has been removed and its parent project hasn'm been removed ...
     ( (m.WasAdded() && !m.ParentType.WasAdded()) ||

     
// ... or the t existed but was not publicly visible
       !m.WasAdded() && !m.OlderVersion().IsPublic)

select new { m,
             
OldVisibility = (m.WasAdded() ? " " : m.OlderVersion().Visibility.ToString()) }

No methods matched

API: New publicly visible fields
// <Name>API: New publicly visible fields</Name>
// List fields that are new in the public surface of your Projects

from f in Application.Fields
where f.IsPublic && 

     
// The method has been removed and its parent project hasn'f been removed ...
     ( (f.WasAdded() && !f.ParentType.WasAdded()) ||

     
// ... or the t existed but was not publicly visible
       !f.WasAdded() && !f.OlderVersion().IsPublic)

select new { f,
             
OldVisibility = (f.WasAdded() ? " " : f.OlderVersion().Visibility.ToString()) }

No fields matched

Code Diff Summary

New Projects
// <Name>New Projects</Name>
from a in Application.Projects where a.WasAdded()
select new { a, a.NbLinesOfCode }

No projects matched

Projects removed
// <Name>Projects removed</Name>
from a in codeBase.OlderVersion().Application.Projects where a.WasRemoved()
select new { a, a.NbLinesOfCode }

No projects matched

Projects where code was changed
// <Name>Projects where code was changed</Name>
from a in Application.Projects where a.CodeWasChanged()
select new { a, a.NbLinesOfCode, 
             
oldNbLinesOfCode = a.OlderVersion().NbLinesOfCode ,
             
delta = (int) a.NbLinesOfCode - a.OlderVersion().NbLinesOfCode }

No projects matched

New namespaces
// <Name>New namespaces</Name>
from n in Application.Namespaces where 
 
!n.ParentProject.WasAdded() &&
  
n.WasAdded()
select new { n, n.NbLinesOfCode }

No namespaces matched

Namespaces removed
// <Name>Namespaces removed</Name>
from n in codeBase.OlderVersion().Application.Namespaces where 
 
!n.ParentProject.WasRemoved() &&
  
n.WasRemoved()
select new { n, n.NbLinesOfCode }

No namespaces matched

Namespaces where code was changed
// <Name>Namespaces where code was changed</Name>
from n in Application.Namespaces where n.CodeWasChanged()
select new { n, n.NbLinesOfCode, 
             
oldNbLinesOfCode = n.OlderVersion().NbLinesOfCode ,
             
delta = (int) n.NbLinesOfCode - n.OlderVersion().NbLinesOfCode }

No namespaces matched

New types
// <Name>New types</Name>
from t in Application.Types where 
 
!t.ParentNamespace.WasAdded() &&
  
t.WasAdded()
select new { t, t.NbLinesOfCode }

No types matched

Types removed
// <Name>Types removed</Name>
from t in codeBase.OlderVersion().Application.Types where 
 
!t.ParentNamespace.WasRemoved() &&
  
t.WasRemoved()
select new { t, t.NbLinesOfCode }

No types matched

Types where code was changed
// <Name>Types where code was changed</Name>
// To visualize changes in code, right-click a matched type and select:
//  - Compare older and newer versions of source file
//  - Compare older and newer versions disassembled with Reflector

from t in Application.Types where t.CodeWasChanged() 
//select new { t, t.NbLinesOfCode }
select new { t, t.NbLinesOfCode, 
             
oldNbLinesOfCode = t.OlderVersion().NbLinesOfCode ,
             
delta = (int?) t.NbLinesOfCode - t.OlderVersion().NbLinesOfCode } 
/*from t in Application.Types where t.CodeWasChanged() && t.IsPresentInBothBuild
select new { t, t.NbLinesOfCode, 
             oldNbLinesOfCode = t.OlderVersion().NbLinesOfCode ,
             delta = (int) t.NbLinesOfCode - t.OlderVersion().NbLinesOfCode }*/

No types matched

Heuristic to find types moved from one namespace or project to another
// <Name>Heuristic to find types moved from one namespace or project to another</Name>
let typesRemoved = codeBase.OlderVersion().Types.Where(t => t.WasRemoved())
let typesAdded = Types.Where(t => t.WasAdded())

from tMoved in typesAdded.Join(
   
typesRemoved,
   
t => t.Name,
   
t => t.Name,
   
(tNewer, tOlder) => new { tNewer, 
                             
OlderParentNamespace = tOlder.ParentNamespace,
                             
OlderParentproject = tOlder.ParentProject  } ) 
select tMoved

No types matched

Types directly using one or several types changed
// <Name>Types directly using one or several types changed</Name>
let typesChanged = Application.Types.Where(t => t.CodeWasChanged()).ToHashSet()

from t in JustMyCode.Types.UsingAny(typesChanged) where
  
!t.CodeWasChanged() && 
  
!t.WasAdded()
let typesChangedUsed = t.TypesUsed.Intersect(typesChanged) 
select new { t, typesChangedUsed }

No types matched

Types indirectly using one or several types changed
// <Name>Types indirectly using one or several types changed</Name>
let typesChanged = Application.Types.Where(t => t.CodeWasChanged()).ToHashSet()

// 'depth' represents a code metric defined on types using
// directly or indirectly any type where code was changed.
let depth = JustMyCode.Types.DepthOfIsUsingAny(typesChanged) 

from t in depth.DefinitionDomain where
  
!t.CodeWasChanged() && 
  
!t.WasAdded()

let typesChangedDirectlyUsed = t.TypesUsed.Intersect(typesChanged) 
let depthOfUsingTypesChanged = depth[t]
orderby depthOfUsingTypesChanged 

select new { t, depthOfUsingTypesChanged, typesChangedDirectlyUsed }

No types matched

New methods
// <Name>New methods</Name>
from m in Application.Methods where 
 
!m.ParentType.WasAdded() &&
  
m.WasAdded()
select new { m, m.NbLinesOfCode }

No methods matched

Methods removed
// <Name>Methods removed</Name>
from m in codeBase.OlderVersion().Application.Methods where 
 
!m.ParentType.WasRemoved() &&
  
m.WasRemoved()
select new { m, m.NbLinesOfCode }

No methods matched

Methods where code was changed
// <Name>Methods where code was changed</Name>
// To visualize changes in code, right-click a matched method and select:
//  - Compare older and newer versions of source file
//  - Compare older and newer versions disassembled with Reflector

from m in Application.Methods where m.CodeWasChanged()
select new { m, m.NbLinesOfCode, 
             
oldNbLinesOfCode = m.OlderVersion().NbLinesOfCode ,
             
delta = (int?) m.NbLinesOfCode - m.OlderVersion().NbLinesOfCode }

No methods matched

Methods directly calling one or several methods changed
// <Name>Methods directly calling one or several methods changed</Name>
let methodsChanged = Application.Methods.Where(m => m.CodeWasChanged()).ToHashSet()

from m in JustMyCode.Methods.UsingAny(methodsChanged ) where
  
!m.CodeWasChanged() && 
  
!m.WasAdded()
let methodsChangedCalled = m.MethodsCalled.Intersect(methodsChanged) 
select new { m, methodsChangedCalled }

No methods matched

Methods indirectly calling one or several methods changed
// <Name>Methods indirectly calling one or several methods changed</Name>
let methodsChanged = Application.Methods.Where(m => m.CodeWasChanged()).ToHashSet()

// 'depth' represents a code metric defined on methods using
// directly or indirectly any method where code was changed.
let depth = JustMyCode.Methods.DepthOfIsUsingAny(methodsChanged) 

from m in depth.DefinitionDomain where
  
!m.CodeWasChanged() && 
  
!m.WasAdded()

let methodsChangedDirectlyUsed = m.MethodsCalled.Intersect(methodsChanged) 
let depthOfUsingMethodsChanged = depth[m]
orderby depthOfUsingMethodsChanged 

select new { m, depthOfUsingMethodsChanged, methodsChangedDirectlyUsed }

No methods matched

New fields
// <Name>New fields</Name>
from f in Application.Fields where 
 
!f.ParentType.WasAdded() &&
  
f.WasAdded()
select new { f }

No fields matched

Fields removed
// <Name>Fields removed</Name>
from f in codeBase.OlderVersion().Application.Fields where 
 
!f.ParentType.WasRemoved() &&
  
f.WasRemoved()
select new { f }

No fields matched

Third party types that were not used and that are now used
// <Name>Third party types that were not used and that are now used</Name>
from t in ThirdParty.Types where t.IsUsedRecently()
select new { t, t.Methods, t.Fields } 

No types matched

Third party types that were used and that are not used anymore
// <Name>Third party types that were used and that are not used anymore</Name>
from t in codeBase.OlderVersion().Types where t.IsNotUsedAnymore()
select new { t, t.Methods, t.Fields }  

No types matched

Third party methods that were not used and that are now used
// <Name>Third party methods that were not used and that are now used</Name>
from m in ThirdParty.Methods where 
  
m.IsUsedRecently() &&
 
!m.ParentType.IsUsedRecently()
select m

No methods matched

Third party methods that were used and that are not used anymore
// <Name>Third party methods that were used and that are not used anymore</Name>
from m in codeBase.OlderVersion().Methods where 
  
m.IsNotUsedAnymore() &&
 
!m.ParentType.IsNotUsedAnymore()
select m

No methods matched

Third party fields that were not used and that are now used
// <Name>Third party fields that were not used and that are now used</Name>
from f in ThirdParty.Fields where 
  
f.IsUsedRecently() &&
 
!f.ParentType.IsUsedRecently()
select f

No fields matched

Third party fields that were used and that are not used anymore
// <Name>Third party fields that were used and that are not used anymore</Name>
from f in codeBase.OlderVersion().Fields where 
  
f.IsNotUsedAnymore() &&
 
!f.ParentType.IsNotUsedAnymore()
select f

No fields matched

Dead Code

Potentially dead Types
// <Name>Potentially dead Types</Name>
warnif count > 0

let tt=Types.UsedByAny(Application.Methods)
// Select types unused
let typesUnused = 
   
from t in JustMyCode.Types where
   
t.NbTypesUsingMe == 0 && !t.IsGlobal  select t



from t in typesUnused  where !tt.Contains(t)
select new { t }
        
        

120 types matched

The following list of types is truncated and contains only the first 100 types of the 120 types matched. All matched types could be listed in the report by unchecking the option:
CppDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a CQL Rule violated
It is recommended to use the CppDepend interactive UI capabilities to browse a large list of matched types.
typesFull Name
typesFull Name
QConstStringQConstString
QStrIListQStrIList
QFileInfo+PermissionSpecQFileInfo+PermissionSpec
QValueListPrivate<T>QValueListPrivate<T>
QMapPrivate<Key,T>QMapPrivate<Key,T>
QTextIStreamQTextIStream
QTSManipQTSManip
QTextOStreamIterator<T>QTextOStreamIterator<T>
QSimpleTextCodecQSimpleTextCodec
QLatin1CodecQLatin1Codec
QUtf8CodecQUtf8Codec
QUtf16CodecQUtf16Codec
QXmlDefaultHandlerQXmlDefaultHandler
QXmlNamespaceSupportPrivateQXmlNamespaceSupportPrivate
QXmlAttributesPrivateQXmlAttributesPrivate
QXmlInputSourcePrivateQXmlInputSourcePrivate
QXmlParseExceptionPrivateQXmlParseExceptionPrivate
QXmlLocatorPrivateQXmlLocatorPrivate
QXmlDefaultHandlerPrivateQXmlDefaultHandlerPrivate
QCacheIterator<type>QCacheIterator<type>
QIntDictIterator<type>QIntDictIterator<type>
QPtrDictIterator<type>QPtrDictIterator<type>
QQueue<type>QQueue<type>
QSortedList<type>QSortedList<type>
QStrIVecQStrIVec
SCStringSCString
CPPValueCPPValue
MemberDictMemberDict
UsesClassDictIteratorUsesClassDictIterator
ClassListIteratorClassListIterator
ClassDictClassDict
OutputNameListOutputNameList
OutputNameDictOutputNameDict
DirectoryDirectory
MemberNameIteratorMemberNameIterator
MemberNameSDictMemberNameSDict
FileNameIteratorFileNameIterator
FileNameListIteratorFileNameListIterator
FileNameDictFileNameDict
NamespaceListIteratorNamespaceListIterator
NamespaceDictNamespaceDict
DirRelationDirRelation
DirSDictDirSDict
EntryCacheEntryCache
FileCacheFileCache
StringDictStringDict
LookupInfoLookupInfo
IndexListIndexList
IndexSectionsIndexSections
ClassHighlightClassHighlight
Entry+GroupDocTypeEntry+GroupDocType
DocInfoDocInfo
BriefInfoBriefInfo
DefinitionListIteratorDefinitionListIterator
SList<T>SList<T>
SDict<T>+IteratorDictSDict<T>+IteratorDict
SIntList<T>SIntList<T>
SIntDict<T>+IteratorSIntDict<T>+Iterator
SourceReferenceSourceReference
TextGeneratorOLImplTextGeneratorOLImpl
SectionDictSectionDict
MapperMapper
MappersMappers
MethodContextMethodContext
VariableContextVariableContext
CallContextCallContext
BufStrBufStr
CondCtxCondCtx
ConfigFileStateConfigFileState
LabelMapperLabelMapper
DefineListDefineList
DefineNameListDefineNameList
StreamStorageStreamStorage
DocLexerContextDocLexerContext
CLanguageScannerCLanguageScanner
MemberIndexListMemberIndexList
PrefixIgnoreClassListPrefixIgnoreClassList
TranslatorDecoderTranslatorDecoder
TranslatorDutchTranslatorDutch
TranslatorSwedishTranslatorSwedish
TranslatorCzechTranslatorCzech
TranslatorFrenchTranslatorFrench
TranslatorIndonesianTranslatorIndonesian
TranslatorItalianTranslatorItalian
TranslatorGermanTranslatorGerman
TranslatorJapaneseTranslatorJapanese
TranslatorJapaneseEnTranslatorJapaneseEn
TranslatorSpanishTranslatorSpanish
TranslatorFinnishTranslatorFinnish
TranslatorRussianTranslatorRussian
TranslatorCroatianTranslatorCroatian
TranslatorPolishTranslatorPolish
TranslatorPortugueseTranslatorPortuguese
TranslatorHungarianTranslatorHungarian
TranslatorKoreanEnTranslatorKoreanEn
TranslatorKoreanTranslatorKorean
TranslatorRomanianTranslatorRomanian
TranslatorSloveneTranslatorSlovene
TranslatorChineseTranslatorChinese
TranslatorChinesetraditionalTranslatorChinesetraditional

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:
Potentially dead Methods
// <Name>Potentially dead Methods</Name>
warnif count > 0
// Filter procedure for methods that should'nt be considered as dead
let canMethodBeConsideredAsDeadProc = new Func<IMethod, bool>(
    
m => !m.IsPublic &&       // Public methods might be used by client applications of your Projects.
         !m.IsEntryPoint &&            // Main() method is not used by-design.
         !m.IsClassConstructor &&      
         
!m.IsVirtual &&               // Only check for non virtual method that are not seen as used in IL.
         !(m.IsConstructor &&          // Don't take account of protected ctor that might be call by a derived ctors.
           m.IsProtected) &&
         
!m.IsGeneratedByCompiler
)

// Get methods unused
let methodsUnused = 
   
from m in JustMyCode.Methods where 
   
m.NbMethodsCallingMe == 0 && 
   
canMethodBeConsideredAsDeadProc(m)
   
select m

// Dead methods = methods used only by unused methods (recursive)
let deadMethodsMetric = methodsUnused.FillIterative(
   
methods => // Unique loop, just to let a chance to build the hashset.
              from o in new[] { new object() }
              
// Use a hashet to make Intersect calls much faster!
              let hashset = methods.ToHashSet()
              
from m in codeBase.Application.Methods.UsedByAny(methods).Except(methods)
              
where canMethodBeConsideredAsDeadProc(m) &&
                    
// Select methods called only by methods already considered as dead
                    hashset.Intersect(m.MethodsCallingMe).Count() == m.NbMethodsCallingMe
              
select m)

from m in JustMyCode.Methods.Intersect(deadMethodsMetric.DefinitionDomain)
select new { m, m.MethodsCallingMe, depth = deadMethodsMetric[m] }

144 methods matched

The following list of methods is truncated and contains only the first 100 methods of the 144 methods matched. All matched methods could be listed in the report by unchecking the option:
CppDepend Project Properties > Report > Avoid too big report for large code base > Don't show more than 100 matched items for a CQL Rule violated
It is recommended to use the CppDepend interactive UI capabilities to browse a large list of matched methods.
methodsMethodsCallingMedepthFull Name
methodsMethodsCallingMedepthFull Name
operator=(constQGArray&)0 method0QGArray.operator=(constQGArray&)
assign(constQGArray&)1 method1QGArray.assign(constQGArray&)
assign(constchar*,uint)0 method0QGArray.assign(constchar*,uint)
store(constchar*,uint)0 method0QGArray.store(constchar*,uint)
sharedBlock()0 method0QGArray.sharedBlock()
setSharedBlock(QGArray::array_data*)0 method0QGArray.setSharedBlock(QGArray::array_data*)
setExpand(uint,constchar*,uint)0 method0QGArray.setExpand(uint,constchar*,uint)
deleteItem(QCollection::Item)0 method0qtoolsGlobalMembers.deleteItem(QCollection::Item)
deleteItem(Item)0 method0qtoolsGlobalMembers.deleteItem(Item)
deleteItem(QCollection::Item)0 method0qtoolsGlobalMembers.deleteItem(QCollection::Item)
deleteItem(QCollection::Item)0 method0qtoolsGlobalMembers.deleteItem(QCollection::Item)
msg_index(uint)0 method0QCString.msg_index(uint)
QIODevice(constQIODevice&)0 method0QIODevice.QIODevice(constQIODevice&)
operator=(constQIODevice&)0 method0QIODevice.operator=(constQIODevice&)
asciiToUnicode(constchar*,uint*,uint)0 method0QString.asciiToUnicode(constchar*,uint*,uint)
asciiToUnicode(constQByteArray&,uint*)0 method0QString.asciiToUnicode(constQByteArray&,uint*)
QBuffer(constQBuffer&)0 method0QBuffer.QBuffer(constQBuffer&)
operator=(constQBuffer&)0 method0QBuffer.operator=(constQBuffer&)
QDataStream(constQDataStream&)0 method0QDataStream.QDataStream(constQDataStream&)
operator=(constQDataStream&)0 method0QDataStream.operator=(constQDataStream&)
takeLast()0 method0QGList.takeLast()
at(uint)0 method0QGList.at(uint)
at()0 method0QGList.at()
deleteItem(QCollection::Item)0 method0QList<type>.deleteItem(QCollection::Item)
newItem(QCollection::Item)0 method0QStrList.newItem(QCollection::Item)
deleteItem(QCollection::Item)0 method0QStrList.deleteItem(QCollection::Item)
compareItems(QCollection::Item,QCollection::Item)0 method0QStrList.compareItems(QCollection::Item,QCollection::Item)
read(QDataStream&,QCollection::Item&)0 method0QStrList.read(QDataStream&,QCollection::Item&)
write(QDataStream&,QCollection::Item)0 method0QStrList.write(QDataStream&,QCollection::Item)
compareItems(QCollection::Item,QCollection::Item)0 method0QStrIList.compareItems(QCollection::Item,QCollection::Item)
QFile(constQFile&)0 method0QFile.QFile(constQFile&)
operator=(constQFile&)0 method0QFile.operator=(constQFile&)
matchstr(uint*,constchar*,uint,constchar*)0 method0QRegExp.matchstr(uint*,constchar*,uint,constchar*)
insert_string(constQString&,QCollection::Item,int,int)0 method0QGCache.insert_string(constQString&,QCollection::Item,int,int)
remove_string(constQString&)0 method0QGCache.remove_string(constQString&)
take_string(constQString&)1 method1QGCache.take_string(constQString&)
find_string(constQString&,bool)0 method0QGCache.find_string(constQString&,bool)
~QGCacheIterator()0 method0QGCacheIterator.~QGCacheIterator()
getKeyString()0 method0QGCacheIterator.getKeyString()
getKeyInt()0 method0QGCacheIterator.getKeyInt()
deleteItem(Item)0 method0QDict<type>.deleteItem(Item)
insertExpand(uint,Item)0 method0QGVector.insertExpand(uint,Item)
deleteItem(Item)0 method0QStack<type>.deleteItem(Item)
QTextStream(constQTextStream&)0 method0QTextStream.QTextStream(constQTextStream&)
operator=(constQTextStream&)0 method0QTextStream.operator=(constQTextStream&)
QStringBuffer(constQStringBuffer&)0 method0QStringBuffer.QStringBuffer(constQStringBuffer&)
operator=(constQStringBuffer&)0 method0QStringBuffer.operator=(constQStringBuffer&)
nameAddC(constQChar&)0 method0QXmlSimpleReader.nameAddC(constQChar&)
refAddC(constQChar&)0 method0QXmlSimpleReader.refAddC(constQChar&)
deleteItem(Item)0 method0QCache<type>.deleteItem(Item)
deleteItem(Item)0 method0QIntDict<type>.deleteItem(Item)
deleteItem(Item)0 method0QPtrDict<type>.deleteItem(Item)
deleteItem(Item)0 method0QQueue<type>.deleteItem(Item)
deleteItem(Item)0 method0QVector<type>.deleteItem(Item)
newItem(Item)0 method0QStrVec.newItem(Item)
deleteItem(Item)0 method0QStrVec.deleteItem(Item)
compareItems(Item,Item)0 method0QStrVec.compareItems(Item,Item)
read(QDataStream&,Item&)0 method0QStrVec.read(QDataStream&,Item&)
write(QDataStream&,Item)0 method0QStrVec.write(QDataStream&,Item)
compareItems(Item,Item)0 method0QStrIVec.compareItems(Item,Item)
msg_index(int)0 method0SCString.msg_index(int)
duplicate(constSCString&)0 method0SCString.duplicate(constSCString&)
duplicate(constchar*)1 method1SCString.duplicate(constchar*)
duplicate(constchar*,int)0 method0SCString.duplicate(constchar*,int)
addUsedInterfaceClasses(MemberDef*,constchar*)0 method0ClassDef.addUsedInterfaceClasses(MemberDef*,constchar*)
showUsedFiles(OutputList&)0 method0ClassDef.showUsedFiles(OutputList&)
writeMemberDeclarations(OutputList&,MemberList::ListType ,constQCString&,constchar*)0 method0ClassDef.writeMemberDeclarations(OutputList&,MemberList::ListType ,constQCString&,constchar*)
writeMemberDocumentation(OutputList&,MemberList::ListType ,constQCString&)0 method0ClassDef.writeMemberDocumentation(OutputList&,MemberList::ListType ,constQCString&)
writePlainMemberDeclaration(OutputList&,MemberList::ListType,bool)0 method0ClassDef.writePlainMemberDeclaration(OutputList&,MemberList::ListType ,bool)
writeBriefDescription(OutputList&,bool)0 method0ClassDef.writeBriefDescription(OutputList&,bool)
writeDetailedDescription(OutputList&,constQCString&,bool ,constQCString&)0 method0ClassDef.writeDetailedDescription(OutputList&,constQCString&,bool ,constQCString&)
writeIncludeFiles(OutputList&)0 method0ClassDef.writeIncludeFiles(OutputList&)
writeAllMembersLink(OutputList&)0 method0ClassDef.writeAllMembersLink(OutputList&)
writeInheritanceGraph(OutputList&)0 method0ClassDef.writeInheritanceGraph(OutputList&)
writeCollaborationGraph(OutputList&)0 method0ClassDef.writeCollaborationGraph(OutputList&)
writeMemberGroups(OutputList&)0 method0ClassDef.writeMemberGroups(OutputList&)
writeNestedClasses(OutputList&,constQCString&)0 method0ClassDef.writeNestedClasses(OutputList&,constQCString&)
startMemberDeclarations(OutputList&)0 method0ClassDef.startMemberDeclarations(OutputList&)
endMemberDeclarations(OutputList&)0 method0ClassDef.endMemberDeclarations(OutputList&)
startMemberDocumentation(OutputList&)0 method0ClassDef.startMemberDocumentation(OutputList&)
endMemberDocumentation(OutputList&)0 method0ClassDef.endMemberDocumentation(OutputList&)
writeAuthorSection(OutputList&)0 method0ClassDef.writeAuthorSection(OutputList&)
~Config()0 method0Config.~Config()
writeMemberDeclarations(OutputList&,MemberList::ListType ,constQCString&)0 method0FileDef.writeMemberDeclarations(OutputList&,MemberList::ListType ,constQCString&)
writeMemberDocumentation(OutputList&,MemberList::ListType ,constQCString&)0 method0FileDef.writeMemberDocumentation(OutputList&,MemberList::ListType ,constQCString&)
writeIncludeFiles(OutputList&)0 method0FileDef.writeIncludeFiles(OutputList&)
writeIncludeGraph(OutputList&)0 method0FileDef.writeIncludeGraph(OutputList&)
writeIncludedByGraph(OutputList&)0 method0FileDef.writeIncludedByGraph(OutputList&)
writeMemberGroups(OutputList&)0 method0FileDef.writeMemberGroups(OutputList&)
writeAuthorSection(OutputList&)0 method0FileDef.writeAuthorSection(OutputList&)
writeSourceLink(OutputList&)0 method0FileDef.writeSourceLink(OutputList&)
writeNamespaceDeclarations(OutputList&,constQCString&)0 method0FileDef.writeNamespaceDeclarations(OutputList&,constQCString&)
writeClassDeclarations(OutputList&,constQCString&)0 method0FileDef.writeClassDeclarations(OutputList&,constQCString&)
startMemberDeclarations(OutputList&)0 method0FileDef.startMemberDeclarations(OutputList&)
endMemberDeclarations(OutputList&)0 method0FileDef.endMemberDeclarations(OutputList&)
startMemberDocumentation(OutputList&)0 method0FileDef.startMemberDocumentation(OutputList&)
endMemberDocumentation(OutputList&)0 method0FileDef.endMemberDocumentation(OutputList&)
writeDetailedDescription(OutputList&,constQCString&)0 method0FileDef.writeDetailedDescription(OutputList&,constQCString&)
writeBriefDescription(OutputList&)0 method0FileDef.writeBriefDescription(OutputList&)
writeMemberDeclarations(OutputList&,MemberList::ListType ,constQCString&)0 method0NamespaceDef.writeMemberDeclarations(OutputList&,MemberList::ListType ,constQCString&)

Statistics

Stat   MethodsCallingMe   depth
Sum:03
Average:00.020833
Minimum:00
Maximum:01
Standard deviation:00.14283
Variance:00.020399
Potentially dead Fields
// <Name>Potentially dead Fields</Name>
warnif count > 0
from f in JustMyCode.Fields where
   
f.NbMethodsUsingMe == 0 && 
   
!f.IsPublic &&     // Although not recommended, public fields might be used by client applications of your Projects.
   !f.IsEnumValue   
  
   
// If you don't want to link CppDepend.API.dll, you can use your own IsNotDeadCodeAttribute and adapt this rule.
select f

11 fields matched

fieldsFull Name
fieldsFull Name
dQFile.d
ungetcBufQTextStream.ungetcBuf
reserved_ptrQTextStream.reserved_ptr
forwardIndexQLatin1Codec.forwardIndex
dQXmlNamespaceSupport.d
dQXmlAttributes.d
dQXmlInputSource.d
dQXmlParseException.d
dQXmlLocator.d
dQXmlDefaultHandler.d
numDirEntry.num

Statistics

Stat
Sum:
Average:
Minimum:
Maximum:
Standard deviation:
Variance:

Projects Dependencies

Project Depends on Is referenced by
Project Depends on Is referenced by
WindowsAPI v1.0.0.0 - qtools v1.0.0.0 ; CppDependency v1.0.0.0 ;
Externals v1.0.0.0 - qtools v1.0.0.0 ; CppDependency v1.0.0.0 ;
qtools v1.0.0.0WindowsAPI v1.0.0.0 ; Externals v1.0.0.0 ; CppDependency v1.0.0.0 ;
CppDependency v1.0.0.0Externals v1.0.0.0 ; WindowsAPI v1.0.0.0 ; qtools v1.0.0.0 ; -

Projects Build Order

  1. qtools
  2. CppDependency

Analysis Log : Information and Warnings

Here are Logs emitted during CppDepend analysis.
The Warnings can reveal potential flaws concerning the health of the build process.
A particular warn can be disabled through the CppDepend interactive UI, panel Error List, tick the checkbox Disabled corresponding to the warn to disable.


Kind Message
Kind Message
WarningEvaluation: 14 days left
Info07/29/2012 10:37:27 Begin full analysis with CppDepend v3.0.0
InfoNo Baseline for Comparison loaded.
WarningAdditional include directory ..\libpng not found for the project CppDependency : it can impact the result of analysis.
Warningexpected a class or namespace at c:\doxygen-1.5.7.3\src\code.cpp:18409:73
Warningexpected a class or namespace at c:\doxygen-1.5.7.3\src\code.cpp:18454:60
Warningexpected a class or namespace at c:\doxygen-1.5.7.3\src\code.cpp:18568:63
Warningexpected a class or namespace at c:\doxygen-1.5.7.3\src\code.cpp:19283:91
Warningexpected a class or namespace at c:\doxygen-1.5.7.3\src\code.cpp:19303:93
Warningexpected a class or namespace at c:\doxygen-1.5.7.3\src\doxygen.cpp:3813:11
Warningno matching function for call to 'readIncludeFile' at c:\doxygen-1.5.7.3\src\pre.cpp:4800:43
Warningexpected a class or namespace at c:\doxygen-1.5.7.3\src\util.cpp:4422:38
Warningexpected a class or namespace at c:\doxygen-1.5.7.3\src\xmlgen.cpp:615:35
Warningexpected a class or namespace at c:\doxygen-1.5.7.3\src\xmlgen.cpp:1151:110
InfoNo dependency cycle detected in assemblies referencement graph.
Info07/29/2012 10:37:59 Analyse dependencies of your application.
Info07/29/2012 10:38:00 Building the report (standard).
Warning3 critical rules are violated. - Types too big - critical - Methods too complex - critical - Methods with too many parameters - critical