Podemos aumentar a reutilização desse padrão de proteção de acesso orientado a chaves?

Podemos aumentar a reutilização paraesse padrão de proteção de acesso orientado a chaves:

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 mal-entendidos contínuos, esse padrão é diferente doAdvogado-Cliente idioma:

Pode ser mais conciso do que o advogado-cliente (pois não envolve proxy através de uma terceira classe)Pode permitir a delegação de direitos de acesso... mas também é mais intrusivo na classe original (um parâmetro fictício por método)

(Uma discussão paralela desenvolvida emessa questão, portanto, estou abrindo esta pergunta.)

questionAnswers(3)

yourAnswerToTheQuestion