Removed GCC 2.95 workarounds, changed to make_shared for exception safety, tried more to get VC++ to work