diff options
Diffstat (limited to 'core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPTemplateResolutionTest.java')
-rw-r--r-- | core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/internal/index/tests/IndexCPPTemplateResolutionTest.java | 39 |
1 files changed, 39 insertions, 0 deletions
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 db5016d71d1..4653d563505 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 @@ -1182,6 +1182,45 @@ public class IndexCPPTemplateResolutionTest extends IndexBindingResolutionTestBa assertEquals("int", ASTTypeUtil.getType(type)); } + // template <typename T> + // struct D; + // + // template <typename C, typename U> + // struct D<void (C::*)(U)> { + // typedef U type; + // }; + // + // template <typename T> + // using E = typename D<decltype(&T::operator())>::type; + // + // template <typename T> + // struct G { + // typedef E<T> type; + // }; + // + // template <typename T> + // using F = typename G<T>::type; + // + // template <typename T, typename U> + // struct B {}; + // + // template <typename T> + // B<F<T>, int>* f(T t); + // + // template <typename U> + // void waldo(B<double, U>* e); + + // struct A { + // void operator()(double x); + // }; + // + // void test() { + // waldo(f(A())); + // } + public void testTemplateArgumentDeduction_507511() throws Exception { + checkBindings(); + } + // class A {}; class B {}; class X {}; // template<typename T> // class C { |