I have a singleton class with a private constructor. In the static factory method I do the following:
shared_ptr MyClass::GetInstance() {
You should use Meyers singleton instead. You should ensure that your compiler supports C++11 magic static before.