#include <iostream>
template<typename SampleType>
class Generic
{
public:
void outer(const SampleType sample)
{
this->inner(sample);
};
virtual void inner(const SampleType sample) = 0;
};
//
// Spezialization.
//
class Doubled : public Generic<double*>
{
public:
virtual void inner(const double* sample)
{
std::cout << "processing for double* " << std::endl;
}
};
int main (int argc, char const *argv[])
{
double* sample = new double[2];
Doubled doubled ;
doubled.outer(sample);
return 0;
}