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
|
||
|
}
|
||
|
|
||
|
|