# Known Limitations + C/C++, C# and Java parsers do not recognise definition of functions or overloaded operators in case of embeded comments after identifier name and before the list of arguments. - This function is not detected by Metrix++: int getMax /* undesarable comment */ (int* array, int length) { /* ... */ } - This function is detected: int getMax(int* array, int length) /* here is fine */ { /* ... */ } + C/C++ parser does not recognise comments within preprocessor statements. These comments are considered to be parts of a define. - This comment is not recognized by Metrix++: #define GET_MAX(a, b) \ /* \ * This macros returns \ * maximum from a and b \ */ \ ((a > b) ? a : b) - This comment is recognised: /* * This macro returns maximum from a and b */ #define GET_MAX(a, b) \ ((a > b) ? a : b) + C# parser does not recognise getters/setters for properties, if there is a comment before a block. - This function is not detected by Metrix++: | : get /* undesarable comment */ { /* ... */ } - This function is detected: get { /* here comment is fine */ /* ... */ } + C# parser interprets properties with default getter/setter as data fields. + Java parser does not recognise anonymous inner classes. + C/C++, C# and Java parsers do not recognise definition of classes/structs/namespaces/interface) in case of embeded comments after keyword and identifier name. - This class is not detected by Metrix++ class /* comment */ MyClass { /* ... */ } - This class is detected: class MyClass /* here is fine */ { /* ... */ } + Java parser does not support parsing of identifiers which have got unicode symbols in name.