#include <type_traits>
#include <iostream>
class Base
{};
class Derived : public Base
{};
template <class T, class Enabler=void>
class Partialy
{
public:
	void say()
	{
		std::cout << "Partialy Default" << std::endl;
	}
};


template <class T>
class Partialy<T, typename std::enable_if<std::is_base_of< Base, T >::value>::type>
{
public:
	void say()
	{
		std::cout << "Partialy special" << std::endl;
	}
};

int main(void)
{
	Derived a;
	Partialy<Derived> b;
	b.say();
}