#include <iostream>

class C1 {};
class C2 {};

void handleSpecial(C1& c1)
{
	std::cout << "Handling C1\n";
}
void handleSpecial(C2& c2)
{
	std::cout << "Handling C2\n";
}

template <typename T> void handle(T& content)
{
	std::cout << "Doing generell stuff\n";
	handleSpecial(content);
}

int main(int argc, char* argv[])
{
	C1 c1;
	handle(c1);
	C2 c2;
	handle(c2);
}
