Well, that's a load of complicated code.
Let's start by introducing the structures that participate in this example:
- SomeOsSpecificFunctionalityHandle [6] stands for an unspecified feature of your operating system that operates on some data and is presumably unsafe to use directly. We assume this feature locks some resource of the operating system that needs to be unlocked again.
-
SomeOsFunctionality [9] represents a safe wrapper around the feature, plus some data T that might be useful for it.
- SomeOsFunctionalityGuard [20] is an RAII guard created by using the lock function. When it is dropped, it will automatically unlock the underlying resource. Additionally, it can be directly used as if it was the data T itself.
These functions might look a bit abstract, as they don't do anything specific, but instead act on some unspecified OS feature. This is because most of the really useful candidates are already present in the standard library&...