summaryrefslogtreecommitdiffstats
path: root/src/util.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2016-09-21 20:01:27 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2016-09-21 20:01:27 (GMT)
commit9ef1bf94eef1af591c40102b930fef95250b8142 (patch)
tree38ec21af29d25dcec3db5961aa032dcc4e94058b /src/util.cpp
parente12ec76f044b07d4e4fe167c93103be2879abaca (diff)
downloadDoxygen-9ef1bf94eef1af591c40102b930fef95250b8142.zip
Doxygen-9ef1bf94eef1af591c40102b930fef95250b8142.tar.gz
Doxygen-9ef1bf94eef1af591c40102b930fef95250b8142.tar.bz2
Bug 771152 - C++11 ref-qualifiers do not appear in Member Function Documentation section
Diffstat (limited to 'src/util.cpp')
-rwxr-xr-xsrc/util.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/util.cpp b/src/util.cpp
index 3593c9d..6f7703b 100755
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -2268,6 +2268,8 @@ QCString argListToString(ArgumentList *al,bool useCanonicalType,bool showDefVals
result+=")";
if (al->constSpecifier) result+=" const";
if (al->volatileSpecifier) result+=" volatile";
+ if (al->refQualifier==RefQualifierLValue) result+=" &";
+ else if (al->refQualifier==RefQualifierRValue) result+=" &&";
if (!al->trailingReturnType.isEmpty()) result+=" -> "+al->trailingReturnType;
if (al->pureSpecifier) result+=" =0";
return removeRedundantWhiteSpace(result);
@@ -3362,6 +3364,12 @@ bool matchArguments(ArgumentList *srcAl,ArgumentList *dstAl,
}
}
+ if (srcAl->refQualifier != dstAl->refQualifier)
+ {
+ NOMATCH
+ return FALSE; // one member is has a different ref-qualifier than the other
+ }
+
// so far the argument list could match, so we need to compare the types of
// all arguments.
ArgumentListIterator srcAli(*srcAl),dstAli(*dstAl);
@@ -3795,6 +3803,12 @@ bool matchArguments2(Definition *srcScope,FileDef *srcFileScope,ArgumentList *sr
}
}
+ if (srcAl->refQualifier != dstAl->refQualifier)
+ {
+ NOMATCH
+ return FALSE; // one member is has a different ref-qualifier than the other
+ }
+
// so far the argument list could match, so we need to compare the types of
// all arguments.
ArgumentListIterator srcAli(*srcAl),dstAli(*dstAl);