From-SVN: r21074
This commit is contained in:
Jason Merrill 1998-07-11 23:08:33 -04:00
parent 744fac594b
commit 841f616caa
9 changed files with 91 additions and 1 deletions

View file

@ -5,7 +5,7 @@ template<class E,class F> class D
};
template<template<class> class D,class E> class C
{ // ERROR - ref below
{
};
int main()

View file

@ -0,0 +1,7 @@
// Build don't link:
template<class M, class T> struct temp2;
template<template<class> class M, class T> struct temp2<M<T>, T> {};
template<class M> struct temp1;
template<template<class> class M, class T> struct temp1<M<T> > {};

View file

@ -0,0 +1,4 @@
// Build don't link:
template <template<class> class TT> void f() {}
template <template<class,class> class TT> void f() {}

View file

@ -0,0 +1,16 @@
template <template<class,class> class TT, class T> void f(T)
{
}
template <template<class> class TT, class T> void f(T)
{
}
template <class T> class C {};
template <class T,class U> class D {};
int main()
{
f<C>(1);
f<D>(1);
}

View file

@ -0,0 +1,16 @@
template <template<int> class TT, class T> void f(T)
{
}
template <template<class> class TT, class T> void f(T)
{
}
template <class T> class C {};
template <int> class D {};
int main()
{
f<C>(1);
f<D>(1);
}

View file

@ -0,0 +1,9 @@
// Build don't link:
template <int i> class C {};
template <template <long> class TT> class D {};
int main()
{
D<C> d; // ERROR - args not match
}

View file

@ -0,0 +1,7 @@
template <class T, template <T> class TT> class C {};
template <int> class D {};
int main()
{
C<int,D> c;
}

View file

@ -0,0 +1,13 @@
template<class E, int i, class F, class G=int, int j=i, class H=E> class D
{
};
template<template<class,int,class,class> class D,class E> class C
{
D<E,2,char,bool> d;
};
int main()
{
C<D,int> c;
}

View file

@ -0,0 +1,18 @@
// Build don't link:
template<class A,class B> class mymap {};
template<class Key,
class Value,
template<class, class > class MapT>
class base
{
};
// specialization
template<class Key, class Value>
class base<Key, Value, mymap<int, int > > // ERROR - mymap<...> is not a template
{ // ERROR - Bad class name
};