# Disable some rules on some files
-sonar.issue.ignore.multicriteria=j1,j2,j3,j4,j5,jni1,jni2,c1,c2a,c2b,c3,c5a,c5b,c6a,c6b,c7,c8a,c8b,c9,c10a,c10b,c10c,cex1a,cex1b,cex2,cex3,cex4,f1,p1,s1,s2,s3,s4,s5
+sonar.issue.ignore.multicriteria=j1,j2,j3,j4,j5,jni1,jni2,c1,c2a,c2b,c3,c4,c5a,c5b,c6a,c6b,c7,c8a,c8b,c9,c10a,c10b,c10c,cex1a,cex1b,cex2a,cex2b,cex3,cex4,f1,p1,s1,s2,s3,s4,s5
# The Object.finalize() method should not be overridden
# But we need to clean the native memory with JNI
sonar.issue.ignore.multicriteria.c3.ruleKey=c:PPMacroName
sonar.issue.ignore.multicriteria.c3.resourceKey=include/smpi/smpi_extended_traces.h
+# Concise syntax should be used for concatenatable namespaces
+# This is C++17, and we still support C++11
+sonar.issue.ignore.multicriteria.c4.ruleKey=cpp:S5812
+sonar.issue.ignore.multicriteria.c4.resourceKey=**/*
+
# Replace alternative operator "not" with "!"
# I like it better, so please leave me alone
sonar.issue.ignore.multicriteria.c5a.ruleKey=cpp:S3659
# Functions which do not return should be declared as "noreturn"
# But examples are intended to remain small and simple
-sonar.issue.ignore.multicriteria.cex2.ruleKey=c:S5271
-sonar.issue.ignore.multicriteria.cex2.resourceKey=examples/**/*.c
+sonar.issue.ignore.multicriteria.cex2a.ruleKey=c:S5271
+sonar.issue.ignore.multicriteria.cex2a.resourceKey=examples/**/*.c
+sonar.issue.ignore.multicriteria.cex2b.ruleKey=cpp:S5271
+sonar.issue.ignore.multicriteria.cex2b.resourceKey=examples/**/*.cpp
# Unused function parameters should be removed, but not in examples
sonar.issue.ignore.multicriteria.cex3.ruleKey=c:S1172