summaryrefslogtreecommitdiff
path: root/src/qdoc/cppcodeparser.cpp
diff options
context:
space:
mode:
authorKarsten Heimrich <karsten.heimrich@theqtcompany.com>2016-02-08 14:39:17 +0100
committerKarsten Heimrich <karsten.heimrich@theqtcompany.com>2016-02-08 15:40:17 +0000
commitdc90b2c0c48eeddfc4508d41e0197e8b30b9f9e5 (patch)
treef34f4da359a30794d25172bf6a3e90ee5e5914bd /src/qdoc/cppcodeparser.cpp
parentca81f8e469faba11f622af9a9ec537a7b3cec08f (diff)
downloadqttools-dc90b2c0c48eeddfc4508d41e0197e8b30b9f9e5.tar.gz
qdoc: Implement support for C++11 default/delete declarations.
Task-number: QTBUG-50870 Change-Id: I8ce46e41e880ece93c9e6e09f2e01f1047de1622 Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
Diffstat (limited to 'src/qdoc/cppcodeparser.cpp')
-rw-r--r--src/qdoc/cppcodeparser.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/qdoc/cppcodeparser.cpp b/src/qdoc/cppcodeparser.cpp
index 7d9838a79..da389d71c 100644
--- a/src/qdoc/cppcodeparser.cpp
+++ b/src/qdoc/cppcodeparser.cpp
@@ -1571,10 +1571,16 @@ bool CppCodeParser::matchFunctionDecl(Aggregate *parent,
// look for const
bool matchedConst = match(Tok_const);
- // look for 0 indicating pure virtual
- if (match(Tok_Equal) && match(Tok_Number))
- virtuality = FunctionNode::PureVirtual;
-
+ bool isDeleted = false;
+ bool isDefaulted = false;
+ if (match(Tok_Equal)) {
+ if (match(Tok_Number)) // look for 0 indicating pure virtual
+ virtuality = FunctionNode::PureVirtual;
+ else if (match(Tok_delete))
+ isDeleted = true;
+ else if (match(Tok_default))
+ isDefaulted = true;
+ }
// look for colon indicating ctors which must be skipped
if (match(Tok_Colon)) {
while (tok != Tok_LeftBrace && tok != Tok_Eoi)
@@ -1644,6 +1650,8 @@ bool CppCodeParser::matchFunctionDecl(Aggregate *parent,
func->setStatic(matched_static);
func->setConst(matchedConst);
func->setVirtualness(virtuality);
+ func->setIsDeleted(isDeleted);
+ func->setIsDefaulted(isDefaulted);
if (isQPrivateSignal)
func->setPrivateSignal();
if (!pvect.isEmpty()) {