#include <stdio.h>
class I
{
};
class C1 : public I
{
public:
C1()
{
printf("C1\n");
}
};
class C2 : public I
{
public:
C2()
{
printf("C2\n");
}
};
template<class C>
I *create()
{
return new C();
}
int main()
{
create<C1>();
return 0;
create<C2>();
}
End of Listing