Это довольно близко к этому:
http://minorfs.wordpress.com/2013/01/18/raiicap-pattern-injected-singleton-alternative-for-c/
В основном, если вы рассматриваете ссылку на объект хорошо спроектированного класса, чтобы обеспечить контроль доступа, вам нужно реализовать любой контроль доступаполитика, которая на самом деле имеет смысл, применение этого шаблона к чему-либо, кроме конструктора, кажется, не имеет особого смысла.
Таким образом, как говорится в статье, если вы используете этот ключ вместе с теми конструкторами, для которых может иметь смысл управление доступом, объектами, представляющими значительную часть ресурсов scares, которые в C ++ обычно реализуются как объекты RAII,чем название RAIICap или RAII-Capability действительно имело бы смысл.
http://www.eros -os.org / essays / capintro.html
В качестве альтернативы вы можете ссылаться на него с более общим именем, таким как полномочия на создание.
Реализация, описанная в этой статье, имеет много общего с основным, то есть основным должно быть создание всех ключей доступа.Вы можете расширить его и сделать его более гибким, добавив дополнительный открытый конструктор для самого ключа:
template <typename T>
class construct_authority {
public:
construct_authority(construct_authority<void> const&)
friend int main(int,char **);
private:
construct_authority(){}
};
Таким образом main может делегировать создание ключа другим частям программы.
Лично я считаю, что имя RAIICap вполне подходит для полезной части этого паттерна.
Некоторое время назад я предложил добавить этот простой шаблон выше в стандартную библиотеку.
https://groups.google.com/a/isocpp.org/forum/#!topic/std-proposals/p_v-aYIvO1E
К сожалению, существуют проблемы с идеей, что может быть один основной отпечаток, который составляет вычислительный корень, поэтому что-то подобное, по-видимому, не может быть в стандартной библиотеке,Сказав это, по крайней мере, для использования с конструктором классов RAII, этот шаблон кажется весьма полезным.