I wouldn't be surprised if this has been discussed before, but I've no idea what the magic search terms are to find the answer.
Why does this compile,
int main() {
int* p(new int());
return 0;
}
while this doesn't,
class X {
int* p(new int());
};
yet this does?
class X {
int* p = new int();
};