aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/3rdparty/cplusplus/TypeVisitor.h
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2015-06-20 22:37:53 +0300
committerOrgad Shaneh <orgads@gmail.com>2015-06-29 09:22:08 +0000
commita77e32800c2bdfdccfcd6dfcacc48d3fa610daea (patch)
tree5bb11546c910ce312b660abc328cac3f364b69b7 /src/libs/3rdparty/cplusplus/TypeVisitor.h
parent70bc5e842c8ec11f17a8bcde4615eedb0a5cccaa (diff)
C++: Ignore explicit template instantiations
Defined in section 14.7.2 of the standard. Fixes completion for std::string. The following explicit instantiation appears in bits/basic_string.tcc: extern template class basic_string<char>; This is wrongfully considered a specialization for a forward declaration (like `template<> class basic_string<char>` is). Introduce a new Symbol type for explicit instantiations. Use-case: template<class T> struct Foo { T bar; }; template class Foo<int>; void func() { Foo<int> foo; foo.bar; // bar not highlighted } Change-Id: I9e35c8c32f6b78fc87b4f4f1fc903b42cfbd2c2b Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
Diffstat (limited to 'src/libs/3rdparty/cplusplus/TypeVisitor.h')
-rw-r--r--src/libs/3rdparty/cplusplus/TypeVisitor.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libs/3rdparty/cplusplus/TypeVisitor.h b/src/libs/3rdparty/cplusplus/TypeVisitor.h
index b3a24b1572..86568dcebc 100644
--- a/src/libs/3rdparty/cplusplus/TypeVisitor.h
+++ b/src/libs/3rdparty/cplusplus/TypeVisitor.h
@@ -51,6 +51,7 @@ public:
virtual void visit(Function *) {}
virtual void visit(Namespace *) {}
virtual void visit(Template *) {}
+ virtual void visit(ExplicitInstantiation *) {}
virtual void visit(Class *) {}
virtual void visit(Enum *) {}
virtual void visit(ForwardClassDeclaration *) {}