RAII (Resource Acquisition Is Initialization) — это техника программирования, которая связывает жизненный цикл ресурса, который должен быть получен перед использованием (выделенная память, поток выполнения, открытый сокет, открытый файл, заблокированный мьютекс и т. д.), с продолжительностью жизни объекта. RAII гарантирует, что ресурс доступен для любой функции, которая может получить доступ к объекту, и что все ресурсы освобождаются, когда заканчивается срок действия их управляющего объекта, в обратном порядке приобретения.