diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPTemplateResolutionTest.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPTemplateResolutionTest.java
index c5c65d3..5fedc93 100644
--- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPTemplateResolutionTest.java
+++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPTemplateResolutionTest.java
@@ -3198,4 +3198,25 @@
 	public void testConstexprInitListConstructor_519091() throws Exception {
 		checkBindings();
 	}
+	
+	//	template <typename T> T&& declval();
+	//	  
+	//	template <typename Value, typename Func, 
+	//	          typename Requires = decltype(declval<Func>()(declval<Value>()))>
+	//	void apply(Value, Func);
+	//
+	//	template <typename T>
+	//	void callInTemplateContext(int i) {
+	//	    return apply(i, [](int x) { return T(x); });
+	//	}
+	//
+	//	void consume(int);
+	//	void callInCpp1(int i);
+	
+	//	void callInCpp1(int i) {
+	//	    apply(i, &consume);
+	//	}
+	public void testClassCastException_533216() throws Exception {
+		checkBindings();
+	}
 }
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java
index 845a325..98574a7 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java
@@ -2973,6 +2973,12 @@
 				return ((InitializerListType) t).getEvaluation().isTypeDependent();
 			} else if (t instanceof IBinding) {
 				IBinding owner = ((IBinding) t).getOwner();
+				if (owner instanceof IFunction) {
+					if (owner instanceof ICPPFunctionTemplate) {
+						return true;
+					}
+					owner = owner.getOwner();
+				}
 				if (owner instanceof ICPPClassTemplate)
 					return true;
 				return (owner instanceof IType) && owner != t && isDependentType((IType) owner);
