template < typename T >
struct Delta {
    typedef decltype( T() - T() ) Value;
};

template <typename T,
    typename DT = typename Delta<T>::Value >
class A { };


int main()
{
	A<int> a;
}