Constructors are not member functions - they don’t have an address that you can take, so it is impossible to test for their presence in a straightforward way with SFINAE*.
While it isn't exactly what you asked for, with C++11 you can get close with std::is_constructible, and with C++03 you have to rollout your own:
template<class A, class B = void>
struct is_constructible;
template<class A, class B>
struct is_constructible {
template<class U> static U declval();
template<std::size_t N> struct dummy;
template<class U> static char test(dummy<sizeof(U(declval<B>()))>*);
template<class U> static long test(...);
static const bool value = sizeof(test<A>(0)) == sizeof(char);
};
* The following is an interesting attempt, but to the best of my understanding it doesn't work well across compilers:
Check at compile time class constructor signature