class-template-ctor-initializer.cpp [plain text]
template<class X> struct A {};
template<class X> struct B : A<X> {
B() : A<X>() {}
};
B<int> x;
template<class X> struct B1 : A<X> {
typedef A<X> Base;
B1() : Base() {}
};
B1<int> x1;
template<typename T> struct Tmpl { };
template<typename T> struct TmplB { };
struct TmplC : Tmpl<int> {
TmplC() :
Tmpl<int>(),
TmplB<int>() { } };
struct TmplD : Tmpl<char>, TmplB<char> {
TmplD():
Tmpl<int>(), TmplB<char>() {}
};
namespace PR7259 {
class Base {
public:
Base() {}
};
template <class ParentClass>
class Derived : public ParentClass {
public:
Derived() : Base() {}
};
class Final : public Derived<Base> {
};
int
main (void)
{
Final final;
return 0;
}
}
namespace NonDependentError {
struct Base { Base(int); };
template<typename T>
struct Derived1 : Base {
Derived1() : Base(1, 2) {} };
template<typename T>
struct Derived2 : Base {
Derived2() : BaseClass(1) {} };
Derived1<void> d1;
Derived2<void> d2;
}