¿Podemos aumentar la reutilización de este patrón de protección de acceso orientado a claves?

¿Podemos aumentar la reutilización paraeste patrón de protección de acceso orientado a claves:

class SomeKey { 
    friend class Foo;
    // more friends... ?
    SomeKey() {} 
    // possibly non-copyable too
};

class Bar {
public:
    void protectedMethod(SomeKey); // only friends of SomeKey have access
};

Para evitar malentendidos continuos, este patrón es diferente delAbogado-Cliente idioma:

Puede ser más conciso que Abogado-Cliente (ya que no implica una representación a través de una tercera clase)Puede permitir la delegación de derechos de acceso.... pero también es más intrusivo en la clase original (un parámetro ficticio por método)

(Una discusión paralela desarrollada enesta pregunta, por lo tanto, estoy abriendo esta pregunta.)

Respuestas a la pregunta(3)

Su respuesta a la pregunta