Well, I'd not say that the constructor I'd provide would be the same as the one provided by the compiler...
Consider:
Code:
struct A
{
double a;
double b;
int c;
char *d;
};
The default generated by the compiler does nothing, and the structure is left in an undefined state.
Barring some other constructor that has a purpose, a default constructor that I write would initialize those to some sane value. (Probably 0, 0, 0, NULL here)
Edit: Now, if your struct/class is a composition of other classes like vectors, lists, strings, etc - things that initialize themselves to sane values, then yeah, there's no point in writing a default constructor - the compiler's will work fine.