with pointer to template function, for which no argument deduction
is possible
* g++.old-deja/g++.pt/overload4.C: New test; passing pointer to
specialization of template function as argument to template
function
* g++.old-deja/g++.other/access2.C: New test; Inner class
shouldn't have privileged access to Outer's names
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22818
138bc75d-0d04-0410-961f-
82ee72b054a4
+1998-10-04 Alexandre Oliva <oliva@dcc.unicamp.br>
+
+ * g++.old-deja/g++.pt/overload5.C: New test; initialize variable
+ with pointer to template function, for which no argument deduction
+ is possible
+
+ * g++.old-deja/g++.pt/overload4.C: New test; passing pointer to
+ specialization of template function as argument to template
+ function
+
+ * g++.old-deja/g++.other/access2.C: New test; Inner class
+ shouldn't have privileged access to Outer's names
+
1998-10-03 Alexandre Oliva <oliva@dcc.unicamp.br>
* g++.old-deja/g++.pt/friend34.C: New test; name injection of
--- /dev/null
+// Build don't link:
+// Based on a test-case in the Standard, submitted by several people
+
+class Outer {
+ typedef int T;
+ class Inner {
+ T i; // ERROR - not accessible - XFAIL *-*-*
+ void f() {
+ T j; // ERROR - not accessible - XFAIL *-*-*
+ }
+ };
+};
--- /dev/null
+// Build don't link:
+
+template <class T> void foo(T);
+
+template <class T> void bar(void (*)(T), T);
+
+void baz() {
+ bar<int>(foo, 1);
+ bar(foo<int>, 1); // explicit args for foo don't help - XFAIL *-*-*
+ bar<int>(foo<int>, 1); // not even here - XFAIL *-*-*
+ bar(foo, 1); // ICE - XFAIL *-*-*
+}
--- /dev/null
+// Build don't link:
+
+template <class T> void foo();
+
+void (*bar)() = foo<void>;
+void (*baz)() = foo; // ERROR - can't deduce T - XFAIL *-*-*