handle Subscription using boost::shared_ptr rather than std::shared_ptr
gcc does not seem to care, clang does.