diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/TemplateArgumentDeduction.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/TemplateArgumentDeduction.java index 4233824ebbd..6319e0c3516 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/TemplateArgumentDeduction.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/TemplateArgumentDeduction.java @@ -636,16 +636,8 @@ public class TemplateArgumentDeduction { deducedArg= tpar.getDefaultValue(); if (deducedArg != null) { deducedArg= CPPTemplates.instantiateArgument(deducedArg, tpMap, -1, null, point); - if (deducedArg != null) { - if (deducedArg instanceof CPPTemplateTypeArgument) { - CPPTemplateTypeArgument deducedTypeArg = (CPPTemplateTypeArgument) deducedArg; - if (!(deducedTypeArg.getTypeValue() instanceof ISemanticProblem)) { - tpMap.put(tpar, deducedArg); - } - } else { - // TODO: Check for problems in non-type or template template parameters? - tpMap.put(tpar, deducedArg); - } + if (CPPTemplates.isValidArgument(deducedArg)) { + tpMap.put(tpar, deducedArg); } } }