lock_guard Class
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at lock_guard Class.
Represents a template that can be instantiated to create an object whose destructor unlocks a mutex.
template <class Mutex> class lock_guard;
The template argument Mutex must name a mutex type.
Public Typedefs
| Name | Description |
|---|---|
lock_guard::mutex_type | Synonym for the template argument Mutex. |
Public Constructors
| Name | Description |
|---|---|
| lock_guard::lock_guard Constructor | Constructs a lock_guard object. |
| lock_guard::~lock_guard Destructor | Unlocks the mutex that was passed to the constructor. |
Header: mutex
Namespace: std
Constructs a lock_guard object.
explicit lock_guard(mutex_type& Mtx);
lock_guard(mutex_type& Mtx, adopt_lock_t);
Parameters
Mtx
A mutex type object.
Remarks
The first constructor constructs an object of type lock_guard and locks Mtx. If Mtx is not a recursive mutex, it must be unlocked when this constructor is called.
The second constructor does not lock Mtx. Mtx must be locked when this constructor is called. The constructor throws no exceptions.
Unlocks the mutex that was passed to the constructor.
~lock_guard() noexcept;
Remarks
If the mutex does not exist when the destructor runs, the behavior is undefined.