#include <iostream>
using namespace std;

template <typename Derived>
struct Comparisons
{
};


template <typename Derived>
bool operator!=(const Comparisons<Derived>& lhs, const Comparisons<Derived>& rhs)
{
    const Derived& d1 = static_cast<const Derived&>(lhs);
    const Derived& d2 = static_cast<const Derived&>(rhs);

    return !(d1 == d2);
}

int main()
{
    Comparisons<int> c1, c2;	

    bool b = c1 != c2;
	
    return 0;
}