37 lines
536 B
C++
37 lines
536 B
C++
#include <iostream>
|
|
|
|
template<typename DATA>
|
|
struct ATB
|
|
{
|
|
int data;
|
|
ATB() : data(0) {}
|
|
};
|
|
|
|
|
|
template<typename DATA,
|
|
typename DerivedType >
|
|
class A : public ATB<DATA>
|
|
{
|
|
public:
|
|
static DerivedType const DEFAULT_INSTANCE;
|
|
};
|
|
|
|
template<typename DATA, typename DerivedType>
|
|
const DerivedType A<DATA, DerivedType>::DEFAULT_INSTANCE;
|
|
|
|
class B : public A<int, B>
|
|
{
|
|
|
|
};
|
|
|
|
int main()
|
|
{
|
|
B b;
|
|
// If this if-block is removed then GDB shall
|
|
// not infinitely recurse when trying to print b.
|
|
|
|
return 0; // marker
|
|
}
|
|
|
|
|