The question is fairly theoretical, though it\'s interesting what makes MS VS2010 treat the following variable declaration (inside main) like a function declaration
main
Declare it without the ():
()
maidsafe::dht::PrivateKeyPtr pk;
Unfortunately, for primitive types that gives you an uninitialized value, but in C++11 you can value initialize with {}:
{}
maidsafe::dht::PrivateKeyPtr pk{};
For a related parsing issue, see the c++ most vexing parse.