A template for delegates core thread-safety. is supposed to be used as a base class for "empty base optimisation". any access to internal data must happen inside an "read access scope" or "write access scope"