std::shared_ptr instead of boost::shared_ptr fully switchable