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

lock_guard::mutex_typeSynonym for the template argument Mutex.

Public Constructors

lock_guard::lock_guard ConstructorConstructs a lock_guard object.
lock_guard::~lock_guard DestructorUnlocks 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);


A mutex type object.


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;


If the mutex does not exist when the destructor runs, the behavior is undefined.

Header Files Reference