#include "stdafx.h"
using namespace std;
class Widget
{
};
class Widget2
{
};
template <typename T , typename U>
class Hoge : public U
{
public:
Hoge()
{
cout << "Hoge0" << endl;
}
};
template <typename T>
class Hoge<T, Widget> : public Widget
{
public:
Hoge()
{
cout << "Hoge1" << endl;
}
};
#ifdef __TEST_TMP4_1
AUTO_TEST( tmp4_1 )
{
Hoge<int , Widget> h1;
Hoge<Widget , Widget2> h2;
}
#endif
template<bool T>
class Base
{
};
template<>
class Base<false>
{
public:
Base()
{
cout << "false" << endl;
}
};
template<>
class Base<true>
{
public:
Base()
{
cout << "true" << endl;
}
};
template< bool T >
class Inherit : public Base< T >
{
public:
Inherit()
{
cout << "Base" << endl;
}
};
#ifdef __TEST_TMP4_2
AUTO_TEST( tmp4_2 )
{
Inherit< true > num;
}
#endif