Make one of the SubscriptionBase::subscribe methods pure virtual. That's because it only ever called itself, which is nonsensical. That just means that all classes that derive from it must implement it.
Make clang aware that one of the tests here just wants to test that equality doesn't throw, so we don't care about the result.